{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Finding Strongly-Connected Components (SCCs) in Interaction Contribution\n",
    "This notebook computes SCCs from the interaction contributions $E^I$ in the article. It requires a successful computation of LRP for all genes using:\n",
    "```\n",
    "python lrp.py -m <path-to-EMOGI-model> --all\n",
    "```\n",
    "The notebook features several analyses of the SCCs like their correlation with betweenness, which features are mainly altered and also writes the SCCs to file as gml which can be read by Cytoscape.\n",
    "It also estimates a threshold for the edges that maximizes the number of SCCs and does pathway & GO enrichment analysis."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Imports"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# data science & classics\n",
    "import pandas as pd\n",
    "import numpy as np\n",
    "import h5py\n",
    "import networkx as nx\n",
    "import os, sys\n",
    "import subprocess\n",
    "import scipy\n",
    "\n",
    "# clustering & embedding\n",
    "from sklearn.cluster import SpectralBiclustering\n",
    "from sklearn.decomposition import PCA\n",
    "from sklearn.manifold import TSNE\n",
    "from scipy.cluster import hierarchy\n",
    "import umap\n",
    "import sklearn\n",
    "from sklearn import preprocessing\n",
    "\n",
    "# other modules of mine\n",
    "sys.path.append(os.path.abspath('../EMOGI'))\n",
    "import gcnIO, postprocessing, utils\n",
    "sys.path.append(os.path.abspath('../pancancer/preprocessing'))\n",
    "import preprocessing_utils as pre_utils\n",
    "\n",
    "# GO enrichment analysis\n",
    "from goatools.base import download_go_basic_obo\n",
    "from goatools.base import download_ncbi_associations\n",
    "from goatools.obo_parser import GODag\n",
    "from goatools.anno.genetogo_reader import Gene2GoReader\n",
    "from goatools.test_data.genes_NCBI_9606_ProteinCoding import GENEID2NT as GeneID2nt_human\n",
    "from goatools.godag_plot import plot_gos, plot_results, plot_goid2goobj\n",
    "from goatools.goea.go_enrichment_ns import GOEnrichmentStudyNS\n",
    "\n",
    "sys.path.append(os.path.abspath('../pancancer'))\n",
    "import preprocessing_utils as ut\n",
    "\n",
    "# plotting\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.gridspec as gridspec\n",
    "import seaborn as sns\n",
    "plt.rc('font', family='Arial')\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Parameters:\n",
    "\n",
    "* `compute_optimal_cutoff`: Whether to compute the cutoff for the number of SCCs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "compute_optimal_cutoff = True"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Relevant Paths\n",
    "* `achilles_data_path`: Path to the achilles CRISPRi gene effect csv file that can be downloaded [here](https://depmap.org/portal/download/)\n",
    "* `model_dir`: Path to the training directory where both, the model and the LRP contributions are stored."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#model_dir = '../data/GCN/training/ctrl_CPDB_multiomics_rev1/'\n",
    "model_dir = '../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/'\n",
    "#model_dir = '../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/'\n",
    "\n",
    "achilles_data_path = '../data/pancancer/Achilles/Achilles_gene_effect.csv'\n",
    "ncg_cancer_genes_path = '../data/pancancer/NCG/cancergenes_list.txt'\n",
    "oncokb_path = '../data/pancancer/oncoKB/cancerGeneList.txt'\n",
    "cgc_path = '../data/pancancer/cosmic/cancer_gene_census.csv'\n",
    "ongene_path = '../data/pancancer/ongene_tsgene/Human_Oncogenes.txt'\n",
    "tsgene_path = '../data/pancancer/ongene_tsgene/Human_TSGs.txt'\n",
    "driverdb_path = '../data/pancancer/driverdb/{}_download_tab.txt' # needs formatting for evidence type\n",
    "baileyetal_path = '../data/pancancer/comprehensive_characterization_of_cancer_driver_genes_and_mutations/comprehensive_characterization_cancer_genes.csv'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Functions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_pathway_enrichment(genes, universe, cluster_idx, out_dir, clean_up=True):\n",
    "    # write cluster information to disk\n",
    "    genes.set_index('ID').to_csv(os.path.join(out_dir, 'cluster_{}.tsv'.format(cluster_idx)), sep='\\t')\n",
    "    universe.set_index('ID').to_csv(os.path.join(out_dir, 'universe_cluster_{}.tsv'.format(cluster_idx)), sep='\\t')\n",
    "\n",
    "    # formulate command to hand to R script\n",
    "    cmd = 'Rscript KEGG.R {} {} {} {}'.format(os.path.join(out_dir, 'cluster_{}.tsv'.format(cluster_idx)),\n",
    "                                              os.path.join(out_dir, 'universe_cluster_{}.tsv'.format(cluster_idx)),\n",
    "                                              os.path.join(out_dir, 'cluster_{}_pathways.txt'.format(cluster_idx)),\n",
    "                                              genes.shape[0]\n",
    "                                          )\n",
    "    res = subprocess.call(cmd, shell=True)\n",
    "    # read pathways and return\n",
    "    top_pathways = pd.read_csv(os.path.join(model_dir, 'cluster_{}_pathways.txt'.format(cluster_idx)),\n",
    "                               sep='\\t')[['Pvalue', 'Count', 'Size', 'Term']].head(5)\n",
    "    \n",
    "    if clean_up:\n",
    "        os.remove(os.path.join(out_dir, 'cluster_{}.tsv'.format(cluster_idx)))\n",
    "        os.remove(os.path.join(out_dir, 'universe_cluster_{}.tsv'.format(cluster_idx)))\n",
    "\n",
    "    return top_pathways\n",
    "\n",
    "\n",
    "def plot_representative(ax, rep, rep_std, xlabels, title=None):\n",
    "    ax.bar(x=np.arange(len(xlabels)), height=rep.values, tick_label=xlabels)#, yerr=rep_std.values)\n",
    "    #ax.spines['right'].set_visible(False)\n",
    "    #ax.spines['top'].set_visible(False)\n",
    "    #ax.spines['bottom'].set_visible(False)\n",
    "    ax.tick_params(axis='both', labelsize=16)\n",
    "    for tick in ax.get_xticklabels():\n",
    "        tick.set_rotation(90)\n",
    "    if not title is None:\n",
    "        ax.set_title(title, fontsize=18)\n",
    "    ax.set_ylabel('Feature\\nContribution', fontsize=18)\n",
    "    utils.colorize_by_omics(ax, xlabels)\n",
    "\n",
    "\n",
    "def plot_representative_heatmap(ax, rep, xlabels, title=None):\n",
    "    vmax = rep.max()\n",
    "    vmin = rep.min()\n",
    "    print (\"Max and min \", vmax, vmin)\n",
    "    rep = rep.reshape(16, 3, order='F')\n",
    "    inner = gridspec.GridSpecFromSubplotSpec(3, 1, hspace=0, subplot_spec=ax)\n",
    "    omics = ['Mutation', 'Methylation', 'Expression']\n",
    "    cmaps = [sns.color_palette(\"Reds\"), sns.color_palette(\"Blues\"), sns.color_palette(\"Greens\")]\n",
    "\n",
    "    for c in range(3):\n",
    "        ax = plt.Subplot(fig, inner[c])\n",
    "        xticklabels = False\n",
    "        if c == 2:\n",
    "            xticklabels = [i.split(':')[1] for i in xlabels[:16]]\n",
    "        sns.heatmap(rep[:, c].reshape(1, -1), ax=ax, xticklabels=xticklabels,\n",
    "                    cbar=False, cmap=cmaps[c],\n",
    "                    cbar_kws={'use_gridspec': False, 'orientation': 'vertical'},\n",
    "                    vmax=vmax, vmin=vmin)\n",
    "        ax.set_yticklabels([omics[c]], rotation=0, fontsize=10)\n",
    "        if not title is None and c == 0:\n",
    "            ax.set_title(title, fontsize=16)\n",
    "        fig.add_subplot(ax)\n",
    "    plt.subplots_adjust(bottom=0.05, hspace=0.05, wspace=0)\n",
    "\n",
    "\n",
    "def plot_pathway_information(ax, pathways):\n",
    "    for i in range(pathways.shape[0]):\n",
    "        ax.text(0, 0.9-i*0.2, '{0:.0E}  {1}  {2}  {3}'.format(pathways.iloc[i]['Pvalue'],\n",
    "                                                              pathways.iloc[i]['Count'],\n",
    "                                                              pathways.iloc[i]['Size'],\n",
    "                                                              pathways.iloc[i]['Term']\n",
    "                                                             ), fontsize=12\n",
    "               )\n",
    "        ax.get_xaxis().set_visible(False)\n",
    "        ax.get_yaxis().set_visible(False)\n",
    "        ax.spines['right'].set_visible(False)\n",
    "        ax.spines['top'].set_visible(False)\n",
    "        ax.spines['left'].set_visible(False)\n",
    "        ax.spines['bottom'].set_visible(False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load PPI Edge Contributions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded and added neighbor contributions with support 0\n",
      "Loaded and added neighbor contributions with support 1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(-218.03097329998323, 103.74528174965478)"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrp_neighbor_matrix = np.load(os.path.join(model_dir, 'lrp_sigmoid', 'support_0_mean_sum.npy'))\n",
    "count = 1\n",
    "for i in range(5):\n",
    "    p = os.path.join(model_dir, 'lrp_sigmoid', 'support_{}_mean_sum.npy'.format(i))\n",
    "    if os.path.isfile(p):\n",
    "        lrp_neighbor_matrix += np.load(p)\n",
    "        count += 1\n",
    "        print (\"Loaded and added neighbor contributions with support {}\".format(i))\n",
    "lrp_neighbor_matrix = lrp_neighbor_matrix / float(count)\n",
    "lrp_neighbor_matrix.min(), lrp_neighbor_matrix.max()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Load Feature LRP Results & EMOGI Predictions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# get the relevant data from the input container\n",
    "args, _ = gcnIO.load_hyper_params(model_dir)\n",
    "with h5py.File(os.path.join(model_dir, args['data']), 'r') as f:\n",
    "    node_names = f['gene_names'][:]\n",
    "    feature_names = f['feature_names'][:]\n",
    "    adjacency = f['network'][:]\n",
    "    features = f['features'][:]\n",
    "\n",
    "# Load the LRP feature results for all genes\n",
    "feature_contributions = np.load(os.path.join(model_dir, 'lrp_sigmoid', 'feat_mean_all.npy'))\n",
    "# replace 0 values with small random ones to prevent numerical issues\n",
    "feat_contrib_df = pd.DataFrame(feature_contributions, index=node_names[:feature_contributions.shape[0], 1], columns=feature_names)\n",
    "zero_rows = feat_contrib_df[(feat_contrib_df == 0).all(axis=1)]\n",
    "feat_contrib_df.loc[(feat_contrib_df == 0).all(axis=1)] = np.random.randn(*zero_rows.shape)*0.00001\n",
    "nodes = pd.DataFrame(node_names, columns=['ID', 'Name'])\n",
    "\n",
    "# get the predictions of the model\n",
    "pred = postprocessing.load_predictions(model_dir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "517956"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(lrp_neighbor_matrix != 0).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1596"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(lrp_neighbor_matrix != 0).sum(axis=0).max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('CDH15', 'CDH7', {'weight': 9.537505127050592}),\n",
       " ('GUCY1A1', 'TP53', {'weight': 6.890360786120053}),\n",
       " ('OGA', 'TP53', {'weight': 6.0373488112385525}),\n",
       " ('VLDLR', 'LRPAP1', {'weight': 5.877348341065435}),\n",
       " ('TOP1MT', 'TP53', {'weight': 5.094309990544176}),\n",
       " ('CRHBP', 'CCNB2', {'weight': 4.718621684697742}),\n",
       " ('TCP11', 'NPFFR1', {'weight': 4.628199249894048}),\n",
       " ('ETHE1', 'TP53', {'weight': 4.127754622315327}),\n",
       " ('IDI1', 'PPP1R15A', {'weight': 3.8594021163870007}),\n",
       " ('NOTUM', 'WNT7A', {'weight': 3.4059993846735908})]"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrp_neighbor_matrix_abs = lrp_neighbor_matrix.copy()\n",
    "#lrp_neighbor_matrix_abs = np.abs(lrp_neighbor_matrix_abs)\n",
    "lrp_neighbor_matrix_abs[lrp_neighbor_matrix_abs < 0] = 0\n",
    "\n",
    "# normalize\n",
    "lrp_df = pd.DataFrame(lrp_neighbor_matrix_abs, index=node_names[:, 1], columns=node_names[:, 1])\n",
    "#lrp_df = lrp_df.rank(axis=1, method='dense') - 1 # for computational efficiency (few edges because most entries are 0)\n",
    "#degrees = pd.DataFrame(adjacency, index=node_names[:, 1]).sum(axis=1)\n",
    "#assert ((degrees.index == lrp_df.index).all())\n",
    "#lrp_df = lrp_df.div(degrees, axis=0)\n",
    "#lrp_df = lrp_df.div(lrp_df.sum(axis=1), axis=0)\n",
    "lrp_df.fillna(0, inplace=True) # some genes have 0 neighbor contribution in total. They are nan after normalization\n",
    "#pred_sameindex = pred.set_index('Name').reindex(lrp_df.index)['Prob_pos']\n",
    "#lrp_df = lrp_df.mul(pred_sameindex, axis=0)\n",
    "# compute graph\n",
    "C_abs = nx.from_pandas_adjacency(lrp_df,\n",
    "                                 create_using=nx.MultiDiGraph)\n",
    "C_abs.remove_edges_from(list(nx.selfloop_edges(C_abs)))\n",
    "\n",
    "sorted(C_abs.edges(data=True), key=lambda x: x[2]['weight'], reverse=True)[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.03854833861149874,\n",
       " 0.016738891936620377,\n",
       " 9.537505127050592,\n",
       " 4.3897644511995774e-08)"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "edge_weights = [i[2]['weight'] for i in C_abs.edges(data=True)]\n",
    "\n",
    "sns.distplot(edge_weights, hist=True)\n",
    "np.mean(edge_weights), np.median(edge_weights), np.max(edge_weights), np.min(edge_weights)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compute Optimal Threshold\n",
    "This only executes if the flag is set earlier because it is time-consuming"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_10_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_9_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_8_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_7_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_6_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_1_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_2_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_3_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_4_thr_0.19.gml\n",
      "Reading: ../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/lrp_neighbors_new_comp_5_thr_0.19.gml\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "128"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "old_modules_dir = '../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/'\n",
    "all_genes_in_modules = []\n",
    "for gml in os.listdir(old_modules_dir):\n",
    "    if gml.endswith('.gml') and not 'nonzero' in gml:\n",
    "        print ('Reading: {}'.format(os.path.join(old_modules_dir, gml)))\n",
    "        module = nx.read_gml(os.path.join(old_modules_dir, gml))\n",
    "        all_genes_in_modules += [n for n in module.nodes()]\n",
    "len(all_genes_in_modules)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "tfs = pd.read_excel('../data/pancancer/lambert_transcriptionfactors/tfs_human.xlsx', sheet_name='Table S1. Related to Figure 1B')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "tfs.dropna(subset=['Is TF?'], inplace=True)\n",
    "tfs = tfs[tfs['Is TF?'] == 'Yes']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'all_genes_in_modules' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-12-1ec163f90dc1>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtfs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mtfs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'Unnamed: 1'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_genes_in_modules\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'all_genes_in_modules' is not defined"
     ]
    }
   ],
   "source": [
    "tfs[tfs['Unnamed: 1'].isin(all_genes_in_modules)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[4, 3, 6, 8, 9, 9, 7, 5, 5, 5, 4]\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAI4CAYAAAD56sN/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABFS0lEQVR4nO3dd5hkVZ3/8feXDCKCMmRhEFbBgCPOAhKHpMAIKKLu6qqgrqijrj8MYCQoiLprWkVARFBRTCRFRHI0ASIuCKIwICBJZBiQJHx/f5zbUNR0ulXVXbe73q/n6ae67r1169tnumvqU+fccyIzkSRJkiRJ/bVYvwuQJEmSJEkGdEmSJEmSGsGALkmSJElSAxjQJUmSJElqAAO6JEmSJEkNsES/C+jWyiuvnDNnzux3GZIkSZIkjctll112V2bOaN8+5QP6zJkzufTSS/tdhiRJkiRJ4xIRNw633SHukiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJaoAl+l2AJGl6m7n/af0uoW/mHza3q8cPcttB9+0nSdJUYw+6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGsCALkmSJElSAxjQJUmSJElqAAO6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGsCALkmSJElSAxjQJUmSJElqAAO6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGsCALkmSJElSAxjQJUmSJElqAAO6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGsCALkmSJElSAxjQJUmSJElqAAO6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGsCALkmSJElSAxjQJUmSJElqAAO6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDVAIwJ6RDwjIr4aEbdExMMRMT8iPhMRy/W7NkmSJEmSJkPfA3pELA9cBLwduBb4InAr8AHgzIhYoo/lSZIkSZI0Kfoe0IF9gA2AL2bmdpn5AWAL4Hhgc+D1/SxOkiRJkqTJ0ISA/q/V7TFDGzIzgaOru5tNekWSJEmSJE2yJgT0v1W367RtX7O6vXMSa5EkSZIkqS+aENCPAR4GPh8RW0TEchExB/g0sICWnnVJkiRJkqarvgf0zLwM2BFYljJZ3P3AucCjwBaZOb9/1UmSJEmSNDn6PkN6RKwCHAqsDvwY+CPwYmAOcGREvDwz72l7zNuAtwGsvfbak1mupAE0c//T+l1CX80/bG6/S5AkSRoIfe9BB75DmbX93zJzt8x8f2ZuC+xbbT+q/QGZeVRmzs7M2TNmzJjkciVJkiRJ6r2+BvSIWAvYHrggM7/fui8zPw9cDbwqIp7aj/okSZIkSZos/e5Bf2Z1+4cR9l9NqXHNEfZLkiRJkjQt9Dug317dPnuE/f8CJHDH5JQjSZIkSVJ/9DWgZ+b1wGXAnIjYvXVfRLwFeCFwRmbe3Y/6JEmSJEmaLH2fxR14C3AecGJE/Bi4FtgI2An4K/DO/pUmSZIkSdLk6PcQdzLzd8Bs4NvAppTZ219Amb39xZl5Qx/LkyRJkiRpUjShB53M/DPwpn7XIUmSJElSv/S9B12SJEmSJBnQJUmSJElqBAO6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGsCALkmSJElSAxjQJUmSJElqAAO6JEmSJEkNYECXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGsCALkmSJElSAxjQJUmSJElqgCU6fWBE/AuwLvAgcEVm3tuzqiRJkiRJGjAj9qBHxHciYo9htm8UEZcC1wCnA+cCd0bEMRGx0sSVKkmSJEnS9DVaD/q/UUL4iUMbIuLZwPnA04ALgMuBZYEtgL2A2RGxRWYunKiCJUmSJEmajuoOcT8EWAF4fWZ+t3VHRLwf+AzwUWC/3pQnSZIkSdJgqDtJ3PbAGe3hHCAz/xs4D3h1D+qSJEmSJGmgdDKL+5Wj7LsMWKPDWiRJkiRJGlhjBfRsu38psN4ox78Q+FtXFUmSJEmSNIDGCugfiohLqxna30sJ6LtFxFatB0XxIcoQ+J9OTKmSJEmSJE1fo00SdwiwUfW1V7UtgQCOA54FEBGbUEL5SsDtwMcnqFZJkiRJkqatEQN6Zn5s6PuIeCpPhPWNgEdbDn2MMrP7ScD7MvOvE1OqJEmSJEnT17iWWavWNb+4+mr3W2D5zHy4l4VJkiRJkjRI6q6DvojMfJQn96hLkiRJkqSaOllmTZIkSZIk9ZgBXZIkSZKkBjCgS5IkSZLUAAZ0SZIkSZIawIAuSZIkSVIDGNAlSZIkSWoAA7okSZIkSQ1gQJckSZIkqQEM6JIkSZIkNYABXZIkSZKkBhhXQI+I/SLi6BH2HRIRX6m+/3REHNfLAiVJkiRJGgTj7UFfBtg7IjZp3RgRKwEfBFavNu0G/EfvypMkSZIkaTCMN6CfDgSwc9v2HYHFq/2SJEmSJKlDS4zzuN8AdwFzgYNatu8MJAZ0SZLUMDP3P63fJfTN/MPm9rsESVIHxtWDnpkJ/BzYOCJmtOzaCbgqM2+eiOIkSZIkSRoUdWZxP706fieAiHgRsCr2nkuSJEmS1LU6Af1nwGPALtX9oeHtP+11UZIkSZIkDZpxB/TM/BtwGfDSiBiaMG4hcNEE1SZJkiRJ0sCo04MOpbd8RcpkcZsBZ2Xmo70uSpIkSZKkQdNJQA/gM9Vjvf5ckiRJkqQeqBvQL6Ust7ZBdd/rzyVJkiRJ6oFaAb1abu2M6u6VmfnX3pckSZIkSdLgqduDDnAycCPwvWH23Qrc1E1BkiRJkiQNoiXqPiAzfwT8aIR923ddkSRJkiRJA6iTHnRJkiRJktRjBnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhqgo4AeEctHxEsiYm51f6XeliVJkiRJ0mCpFdAjYtWIOAG4G7gIOKXa9c6I+FNEbNXrAiVJkiRJGgTjDugRMQP4BfAa4FfA5UBUu+8H1gFOj4gX9LpISZIkSZKmuzo96AcBawO7ZeZWwE+GdmTmF4AdgSWAj/ayQEmSJEmSBkGdgL4bcGJm/mS4nZl5HnAi8JIe1CVJkiRJ0kCpE9BXBq4f45ibgRmdlyNJkiRJ0mCqE9BvBjYe45hNq+MkSZIkSVINdQL6D4HtI2Kf4XZGxL7AlsBJvShMkiRJkqRBskSNYw8B5gKHR8Q8YHGAiDgWeDHwXOBPwKE9rlGSJEmSpGlv3D3ombkQ2AI4ApgJbEhZZu2NwPrAt4AtMvOenlcpSZIkSdI0V6cHncy8F5gXEe8BngOsCNwHXJuZD/W+PEmSJEmSBsO4A3pEbA38MTNvy8xHgauHOWYbYJvMPLiHNUqSJEmSNO3VmSTuPOB3EbHtKMfMAQ7opiBJkiRJkgZRnYAOZY3zM6oZ2yVJkiRJUo/UDehfB64EPhsRx0fEshNQkyRJkiRJA6duQP8LZa3zE4B/By6JiHV6XpUkSZIkSQOmbkAnMx/MzNcDHwJeAFwaETtUux/tZXGSJEmSJA2K2gF9SGZ+GtgNWAo4vbou/f5eFSZJkiRJ0iCptQ56u8z8aURsCpwCfBa4sSdVSZIkSZI0YDruQR+SmdcAmwBnAjO7PZ8kSZIkSYOoTg/6tsD84XZk5oKI2IVyXfr6PahLkiRJkqSBMu6Anpnnj7H/MeCQriuSJEmSJGkAjRjQI2Ij4LbMvKPl/rhk5pU9qE2SJEmSpIExWg/6FcCBwMEt93Oc5128biER8Xrgv4DnAwuAi4EPZ+Yf655LkiRJkqSpZrSAfhwllA/5JuMP6LVExCeBjwDXAYcDawKvBraLiI0zc/5EPK8kSZIkSU0xYkDPzL3b7u81EQVExCbAh4HzgZ0z84Fq+4+AHwAfB948Ec8tSZIkSVJTdLXMWkQsExHrR8TyXZxmXnX7tqFwXvkRcBTw5y7OLUmSJEnSlDBmQI+IXSPiG62TxEXxKeAu4Frg7xHxvYh4Rgc17Az8vv1a8yz2yUxnhpckSZIkTXujBvSIOAI4GXgj8C8tuw4B9gOWBc4EzgJeBZwfEUuP98kjYhVgBnBVRGwQESdGxD0RsSAifhAR69b6aSRJkiRJmqJGDOgRsSvwNspEcTsBp1Xb1wTeT5kw7j8zc6fM3BnYA3gu8J4az79Gdbsm8GtgJnAMZQb3PYFfRsQ6Nc4nSZIkSdKUNNos7m8B/gbMycyFLdv3rB53XWYeM7QxM0+NiIsps69/dpzP/5TqdmvKLPFvzsxHASLi3cCXgC8Ar2x9UES8jfLhAWuvvfY4n0oaXDP3P63fJfTV/MPm9rsESZIkaUyjDXHfBDitLZwD7EjpPT91mMf8iicPhR/LY9Xto8D/Gwrnla8A1wNzI2K51gdl5lGZOTszZ8+YMaPG00mSJEmS1EyjBfSnA7e0boiIxYAtq7tnD/OYR4Clajz/gup2fmbe3bojMx8DrgSWBOwmlyRJkiRNa6MF9AXAym3bNgFWoATxC4Z5zLMpM7uP1/WU3vORQv2S1e0/apxTkiRJkqQpZ7SA/htgh6rXfMjrqtuzM/NJoTkiVgNeRpnsbVwy80HgUuCZEbF+2/mWAF5IuQ7+lmEeLkmSJEnStDFaQD8KWBf4bkRsHRHzKBOzJfDl1gMjYgbwfcqya9+uWcNR1e2XImLJlu3vA9YCvtl2bbokSZIkSdPOiLO4V7OyfwWYR5m5HSCAwzPz9KHjIuJUYAdgGeAHmXlKzRq+AewKvAK4IiJOBzYEdgH+CBxU83ySJEmSJE05o/Wgk5nvBrYFPgf8L7BrZr6r7bANgYXAATwxBH7cMjMpS7PtW216FzALOBzYPDMXjPBQSZIkSZKmjdHWQQcgM88Hzh/lkI2HWYqtlsz8J/D56kuSJEmSpIEzag/6eHQbziVJkiRJUg8CuiRJkiRJ6p4BXZIkSZKkBjCgS5IkSZLUACMG9IhYLyLGnEROkiRJkiR1b7Qe9IuATw3diYiPR8TWE1+SJEmSJEmDZ7SAvlLb/gOBORNZjCRJkiRJg2q0Iew3AXtFxH3A36ptm0XEe8Y6aWZ+qRfFSZIkSZI0KEYL6IcCRwMfq+4nsFP1NZoEDOiSJEmSJNUwYkDPzGMj4pfALGAZ4BjgZOCUSalMkiRJkqQBMuos7Zl5DXANQEQcAJyXmcdNRmGSJEmSJA2ScS+jlpnrDn0fEWsDLwSWo1yffnVm3tr78iRJkiRJGgy11jmPiJnA14Dt2nZlRJwD7JOZN/SoNkmSJEmSBsa4A3pErAZcDKwO/Kb6/lbKcmzbADsA50fExpl51wTUKkmSJEnStFWnB/0ASjh/R2Ye2b4zIt4KHAV8GNi3N+VJkiRJkjQYFqtx7FzgzOHCOUBmHg2cCezei8IkSZIkSRokdQL6qsCVYxzze2CNzsuRJEmSJGkw1QnotwMbjXHMRoDXn0uSJEmSVFOdgP5TYIeI2Hu4nRHxdmB74LReFCZJkiRJ0iCpM0ncgcArgKMj4o3AhcACYE1gC2A2pZf94N6WKEmSJEnS9DfugJ6Zt0XE5pR10LelLK3W6lzKOui39rA+SZIkSZIGQp0edDLzemD7iFgLmAWsACwErsjMv/S+PEmSJEmSBkOtgD4kM28Gbu5xLZIkSZIkDaw6k8RJkiRJkqQJYkCXJEmSJKkBDOiSJEmSJDWAAV2SJEmSpAYwoEuSJEmS1ABdB/SIWDwi1o+I5XtRkCRJkiRJg6hWQI+IrSPiexGxeHX/hcANwLXAHRFxwATUKEmSJEnStDfugB4R2wFnA3sCz6w2fw1YCzgXmA98PCL+o8c1SpIkSZI07dXpQf8gsBDYJDPnR8SGwGzgjMzcAZgFXAPM63mVkiRJkiRNc3UC+r8CJ2TmZdX9lwMJfB8gMx8GfgY8r6cVSpIkSZI0AOoE9KWBBS33d65uz2w73z+7LUqSJEmSpEFTJ6D/GdgUICJWBbYArsrMm6ttSwFzq+MkSZIkSVINdQL6icCciDgXuBhYAvgGQETMBX4BrEeZOE6SJEmSJNWwRI1jPwmsBvwnEMD3gC9V+zYHXgh8DgO6JEmSJEm1jTugZ+ajwDsi4oPAYpnZej3614AvZebtvS5QkiRJkqRBUGeIOwCZuRB4NCJeUg1tB1hgOJckSZIkqXO1AnpErBoRJwB3AxcBp1S73hkRf4qIrXpdoCRJkiRJg2DcAT0iZlAmgnsN8Cvgcsq16AD3A+sAp0fEC3pdpCRJkiRJ012dHvSDgLWB3TJzK+AnQzsy8wvAjpRr2j/aywIlSZIkSRoEdQL6bsCJmfmT4XZm5nmUpdhe0oO6JEmSJEkaKHWWWVsZuH6MY24GZnRejiRJkvpt5v6n9buEvpp/2NyxDxrFILefbdedbttPU1+dHvSbgY3HOGbT6jhJkiRJklRDnYD+Q2D7iNhnuJ0RsS+wJXBSLwqTJEmSJGmQ1BnifggwFzg8IuYBiwNExLHAi4HnAn8CDu1xjZIkSZIkTXvj7kHPzIXAFsARwExgQ8oya28E1ge+BWyRmff0vEpJkiRJkqa5Oj3oZOa9wLyIeA/wHGBF4D7g2sx8qPflSZIkSZI0GGoF9CGZ+ShwdY9rkSRJkiRpYI0Y0CNihU5PWvW0S5IkSZKkcRqtB/0eIDs4Z45xXkmSJEmS1Ga0IH0BnQV0SZIkSZJU04gBPTPnTGIdkiRJkiQNtHEvsyZJkiRJkibOuK8Vj4gTx3loZuarOqxHkiRJkqSBVGcyt1eMsT+BfwCPdFyNJEmSJEkDqk5AX3eE7csB6wMfAJYFtu+2KEmSJEmSBs24A3pm3jjK7j9ExJnA74FPAfO6LUySJEmSpEHSs0niMvNB4BRgj16dU5IkSZKkQdHrWdxXBlbo8TklSZIkSZr26sziPlLwXgx4CvBy4N+B3/SgLkmSJEmSBkqdSeLuoczUPprHgAM7LUaSJEmSpEFVJ6BfwPABPYGHgWuAYzLzyl4UJkmSJEnSIKkzi/ucCaxDkiRJkqSB1utJ4iRJkiRJUgdG7EGPiGM6PGdm5ls6fKwkSZIkSQNptCHuew2zbega9BhhX1S3BnRJkiRJkmoYLaC/qO3+04HjgbuBg4FLqu+XB/4VOABYEdit51VKkiRJkjTNjRjQM/N3rfcj4uvAP4FtMvNvLbv+AZwWERcCv6WE99dMQK2SJEmSJE1bdSaJeyVwSls4f1xm3gv8GHhZLwqTJEmSJGmQ1AnoSRnCPpq1gAc7rkaSJEmSpAFVJ6BfBLw6IrYZbmdE7AG8Avh5D+qSJEmSJGmgjDZJXLuPAtsCZ0bE6cBlwELgacAWwHbA7cBHel2kJEmSJEnT3bgDemb+PiK2Br4I7Fp9Pb4b+Bnwrsy8qbclSpIkSZI0/dXpQSczrwC2iYg1gI2AlYC/A7/NzNt7X54kSZIkSYOhzjXorZYAlgQeoyy9tnjPKpIkSZIkaQDV6kGPiJnA1yjXm7fKiDgH2Cczb+hRbZIkSZIkDYxxB/SIWA24GFgd+E31/a2UYe7bADsA50fExpl51wTUKkmSJEnStFWnB/0ASjh/R2Ye2b4zIt4KHAV8GNi3N+VJkiRJkjQY6lyDPhc4c7hwDpCZRwNnArv3ojBJkiRJkgZJnYC+KnDlGMf8Hlij83IkSZIkSRpMdQL67ZSl1UazEeD155IkSZIk1VQnoP8U2CEi9h5uZ0S8HdgeOK0XhUmSJEmSNEjqTBJ3IPAK4OiIeCNwIbAAWBPYAphN6WU/uLclSpIkSZI0/Y07oGfmbRGxOWUd9G0pS6u1OpeyDvqtPaxPkiRJkqSBUKcHncy8Htg+ItYCZgErAAuBKzLzL70vT5IkSZKkwVAroA/JzJuBm3tcCwAR8d/A+4BtM/O8iXgOSZIkSZKaZsSAHhFrd3rSzLypk8dFxCbAezt9XkmSJEmSpqrRetDnA9nBOXOM8w4rIpYCjgEW7+A5JUmSJEma0sYTpO+jzNj+yATX8hHgX4CzgB0m+LkkSZIkSWqU0QL6l4FXUpZR2xw4FfgB8PPM7GlYj4iNgA8BhwIrYkCXJEmSJA2YxUbakZnvycxnUtY4/wYwhxLS74iIYyNibkQs2W0BEbE48HXgOkpAlyRJkiRp4IwY0Idk5i8y832ZORN4CWUd9C2BHwN3RsS3ImLX6hryTrwf2Bh4a2Y+3OE5JEmSJEma0uqug/5r4NfAByNiY2BPYA/g9cDCiPgx8IPMPGU854uIZwMHAodn5i/GW0dEvA14G8Daa3c82fykm7n/af0uoa/mHza33yVIkiRJ05Z5Y+rnjTF70EeSmZdn5oczcwNgE+Aq4HXAieN5fEQEZWj7HZTrz+s891GZOTszZ8+YMaNm5ZIkSZIkNU/t5dCGRMRTgZdTetB3Ap4CPAycPc5TzKMMlZ+bmfd1WockSZIkSdNBrYAeETOA3SmhfDtgKeAB4AzgR8CPM/PecZ5uz+r2tNKZvohzq+3rZub8OnVKkiRJkjTVjBnQI2JtynJre1CWW1ucsjb6SZRQ/tPM/EcHz30scN4w23cCNgWOA+YD93RwbkmSJEmSppQRA3pEfJgSyl9UbVoAHE8J5T/PzIe6eeLMPHaE512REtCPzczzunkOSZIkSZKmitF60D8JJHAbcDJwDvAIEMDLRhiWDkBmntq7EiVJkiRJmv7GGuIewOrA26uvsQQl1C/eZV2SJEmSJA2U0QL6QZNWRYvMfC/w3n48tyRJkiRJ/TJiQM/MvgR0SZIkSZIG0WL9LkCSJEmSJBnQJUmSJElqBAO6JEmSJEkNYECXJEmSJKkBRgzoEbFeRIy1DJskSZIkSeqB0XrQLwI+NXQnIj4eEVtPfEmSJEmSJA2e0QL6Sm37DwTmTGQxkiRJkiQNqtGGsN8E7BUR9wF/q7ZtFhHvGeukmfmlXhQnSZIkSdKgGC2gHwocDXysup/ATtXXaBIwoEuSJEmSVMOIAT0zj42IXwKzgGWAY4CTgVMmpTJJkiRJkgbIqLO0Z+Y1wDUAEXEAcF5mHjcZhUmSJEmSNEjGvYxaZq479H1ErA28EFiOcn361Zl5a+/LkyRJkiRpMNRa5zwiZgJfA7Zr25URcQ6wT2be0KPaJEmSJEkaGOMO6BGxGnAxsDrwm+r7WynLsW0D7ACcHxEbZ+ZdE1CrJEmSJEnTVp0e9AMo4fwdmXlk+86IeCtwFPBhYN/elCdJkiRJ0mBYrMaxc4EzhwvnAJl5NHAmsHsvCpMkSZIkaZDUCeirAleOcczvgTU6L0eSJEmSpMFUJ6DfDmw0xjEbAV5/LkmSJElSTXUC+k+BHSJi7+F2RsTbge2B03pRmCRJkiRJg6TOJHEHAq8Ajo6INwIXAguANYEtgNmUXvaDe1uiJEmSJEnT37gDembeFhGbU9ZB35aytFqrcynroN/aw/okSZIkSRoIdXrQyczrge0jYi1gFrACsBC4IjP/0vvyJEmSJEkaDLUC+pDMvBm4uce1SJIkSZI0sOpMEidJkiRJkiaIAV2SJEmSpAYwoEuSJEmS1AAGdEmSJEmSGmDcAT0iToiIeRNZjCRJkiRJg6rOLO67AndNVCGSJEmSJA2yOkPc76Ssey5JkiRJknqsTg/6O4ATIuIzwInADcADwx2Ymff2oDZJkiRJkgZGnYB+OBDA+6qvkWTN80qSJEmSNPDqBOkbgfkTVIckSZIkSQNt3AE9M+dMYB2SJEmSJA20jtZBj4jlI+IlETG3ur9Sb8uSJEmSJGmw1AroEbFqRJwA3A1cBJxS7XpnRPwpIrbqdYGSJEmSJA2CcQf0iJgB/AJ4DfAr4HLKpHEA9wPrAKdHxAt6XaQkSZIkSdNdnR70g4C1gd0ycyvgJ0M7MvMLwI6Ua9o/2ssCJUmSJEkaBHUC+m7AiZn5k+F2ZuZ5lPXRX9KDuiRJkiRJGih1AvrKwPVjHHMzMKPzciRJkiRJGkx1AvrNwMZjHLNpdZwkSZIkSaqhTkD/IbB9ROwz3M6I2BfYEjipF4VJkiRJkjRIlqhx7CHAXODwiJgHLA4QEccCLwaeC/wJOLTHNUoAzNz/tH6X0FfzD5vb7xIkSZIkTaBx96Bn5kJgC+AIYCawIWWZtTcC6wPfArbIzHt6XqUkSZIkSdNcnR50MvNeYF5EvAd4DrAicB9wbWY+1PvyJEmSJEkaDHWuQW9/3OJAAg8BD/esIkmSJEmSBlCtgB4Ra0XEt4AFwBXARcDVwD0R8cWIWKH3JUqSJEmSNP2Ne4h7RKwLXAKsClwL/BpYCKwBzAbeTZnlfavM/PsE1CpJkiRJ0rRV5xr0T1LC+dsz86jWHRGxBLAf8InquHk9q1CSJEmSpAFQZ4j7y4BT28M5QGb+MzMPAc4CXtWr4iRJkiRJGhR1AvrSlKHto/ktsHzn5UiSJEmSNJjqBPSzgF0jYqnhdkbEYsD2lInjJEmSJElSDSMG9IhYofUL+Dhl3fOzI2LL6rrzoWNnAT8CVgHeNbElS5IkSZI0/Yw2Sdw9lHXO260GnA9kRPwdWKHlPA8BvwKe0cMaJUmSJEma9kYL6BcwfECXJEmSJEk9NmJAz8w5k1iHJEmSJEkDrc4kcZIkSZIkaYKMNsR9ERGxDLANMJOy7NqwMvNL3ZUlSZIkSdJgGXdAj4iNgJ8Aaw5tGuHQBAzokiRJkiTVUKcH/QvAWsCxlJnaH5yAeiRJkiRJGkh1AvqLge9n5psnqhhJkiRJkgZVnUni7gP+OlGFSJIkSZI0yOoE9G8Du0fEchNVjCRJkiRJg6rOEPePARsCV0bEkcB84KHhDszMU7svTZIkSZKkwVEnoK8FrA88CzhshGOCMov74l3WJUmSJEnSQKkT0A8HNgAuqb7un5CKJEmSJEkaQHUC+ubAGZm580QVI0mSJEnSoKozSdyDwJUTVYgkSZIkSYOsTkA/BdglIpacqGIkSZIkSRpUdYa47wecC5wXEUcAf2KE69Az0552SZIkSZJqqBPQb69uFwc2G+NYZ3GXJEmSJKmGOgH9eMoSapIkSZIkqcfGHdAzc68JrEOSJEmSpIFWZ5I4SZIkSZI0Qcbdgx4RJ47z0MzMV3VYjyRJkiRJA6nONeivGGN/Av8AHum4GkmSJEmSBlSdgL7uCNuXA9YHPgAsC2zfbVGSJEmSJA2aOpPE3TjK7j9ExJnA74FPAfO6LUySJEmSpEHSs0niMvNB4BRgj16dU5IkSZKkQdHrWdxXBlbo8TklSZIkSZr26sziPlLwXgx4CvBy4N+B3/SgLkmSJEmSBkqdSeLuoczUPprHgAM7LUaSJEmSpEFVJ6BfwPABPYGHgWuAYzLzyl4UJkmSJEnSIKkzi/ucCaxDkiRJkqSB1utJ4iRJkiRJUgdG7EGPiHM6PGdm5vYdPlaSJEmSpIE02hD3OTXPlUAw9kRyi4iI1SiTy80FVgXuBs4CPp6Z19c9nyRJkiRJU81oAX2lcZ7j2cARwIsok8UdVqeAKpz/GngmcCZwAvAc4HXAzhGxWWZeV+eckiRJkiRNNSMG9MxcMNoDI2Jx4IPAR4FlgUuA/8zMP9Ss4UBKOH9fZn6u5fz/AXwL+B9gt5rnlCRJkiRpSulokriI+FfgMuCTwCPAvMzcsoNwDvBK4E7gC60bM/PbwJ+Bl0WEk9lJkiRJkqa1OuugExHLAYcC84DFgVMo4fzWTp686oU/FHgkMx8b5pCHgKWAJavvJUmSJEmalsYd0CNiF+BwYG3gr8C7M/PEbp48Mx8FvjjC820AbAD8OTMN55IkSZKkaW3MoeMRMSMivgv8mHKt+FHAc7sN52M852LAl6v6jpqo55EkSZIkqSlGDegRsTfwB+C1wB+BOZn59rEmkOtGRARwJLA9cClt16ZXx7wtIi6NiEvvvPPOiSpFkiRJkqRJM+IQ94g4myfWQr8c+DSwUkSMOaN6Zp7aSTERsQTwNWAv4Hpg98x8eJjzH0XVsz579uza665LkiRJktQ0o12Dvm3L9xtT1icfSwBJmUCulmoCuh8AuwDXATt0OvmcJEmSJElTzWgB/aDJKiIiVgJOBzYFfgvslJl3TNbzS5IkSZLUbyMG9MyclIAeEcsAP6GE8/OB3TLz3sl4bkmSJEmSmqLWOugT5FBgc+AXwM6Z+UCf65EkSZIkadL1NaBHxGrAvOruH4D9yiTuizgsMx+ctMIkSZIkSZpk/e5B3wxYqvr+zaMc9wXAgC5JkiRJmrb6GtAz82TKzO+SJEmSJA20xfpdgCRJkiRJMqBLkiRJktQIBnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpAQzokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgMY0CVJkiRJagADuiRJkiRJDWBAlyRJkiSpARoR0CNiiYj4fxFxdUQ8EBHXR8THImLJftcmSZIkSdJkaERAB74CfA74G/BF4BbgYOC7/SxKkiRJkqTJskS/C4iIzYG3AT8EXpOZGREBHAu8MSJenpk/6WeNkiRJkiRNtCb0oM+rbg/KzASobj8EJPDWfhUmSZIkSdJkaUJA3xq4KzP/r3VjZt4K/BHYpi9VSZIkSZI0ifoa0CNiaWAt4M8jHDIfWDEiZkxaUZIkSZIk9UG/e9CfXt3eM8L+BdXt0ya+FEmSJEmS+ieqy7778+QRawM3Aqdm5u7D7P8m8AbgBa1D4CPibZSJ5QCeA1w7CeVOBysDd/W7iCnM9uucbdcd269ztl13bL/u2H6ds+26Y/t1zrbrju03futk5iIjxfs9i/sD1e1SI+xfurq9v3VjZh4FHDVRRU1XEXFpZs7udx1Tle3XOduuO7Zf52y77th+3bH9Omfbdcf265xt1x3br3v9HuK+AHiMkYewP63lOEmSJEmSpq2+BvTMfJgyxH3dEQ5ZF7gzM++evKokSZIkSZp8/e5BB7gIWC0int26MSLWAJ4N/LIvVU1PXhbQHduvc7Zdd2y/ztl23bH9umP7dc62647t1znbrju2X5f6OkkcQETsAJwJ/Ah4TWY+FhEBHAu8Edg1M3/SxxIlSZIkSZpwfQ/oABFxAvBa4NfAucDmwFbADymhvf9FSpIkSZI0gZoS0JcE9gf2AtYEbgK+BXwmMx/qY2mSJEmSJE2KRgR0SZIkSZIGXRMmiZMkSZIkaeAt0e8CpCapLrd4FWUOhGcCywD3A7cA5wMnZeY/+1dhs9l+nbPtJEnSVOB7lonlEPdpKCKeAfwnI//RfN215RcVEesDPwNWAS4FbgUeApYG1gBmU9pw58yc36cyG8v265xt1z1f97pj+3XOtuuO7dc52647tl9nfM8y8Qzo00xEzAZ+DtwNXMCifzRbAysAO2bm7/pVZxNFxM+BB4DXZeb9w+xfHvgOsHhmzp3s+prO9uucbdcdX/e6Y/t1zrbrju3XOduuO7Zf53zPMvEM6NNMRPwC+D2wz3DL01VrzB8FbJCZW012fU0WEfcDm2TmVaMc83zgksxcYfIqmxpsv87Zdt3xda87tl/nbLvu2H6ds+26Y/t1zvcsE89J4qafFwL/M9La8dX2/wE2ntSqpoY7gWePcczzgHsnoZapyPbrnG3XHV/3umP7dc62647t1znbrju2X+d8zzLBnCRu+rkJ2BK4dpRjtgP+OjnlTClfBL5Rfep3PuX6mQcpw51WB7YB9gcO6VuFzWb7dc62646ve92x/Tpn23XH9uucbdcd269zvmeZYAb06ecTwNcjYgvgPIb/o3kT8LZ+FdhUmfn5iLgX+ABwEND6qWoA1wEfyMwj+1Ff09l+nbPtuubrXndsv87Zdt2x/Tpn23XH9uuQ71kmntegT0MRsQPwfmAL4Cktu+4HLgE+l5ln9KO2qSIiZgBrActRJsL4S2be2d+qpg7br3O2XWd83euO7dc52647tl/nbLvu2H7d8z3LxDCgT2PVBBcrUv3RuFSEJlq1LuamwErAhZl5T9v+pYFXZeZ3+lDelBIRywCvANYErsrMn/W3oqnB173u2H6ds+26Y/t1zrbrju3Xmeo93yyevETdzcDvXAO9Owb0aSoiVqdcW9P+R3NxZt7Wz9o0PUXEM4HTgedWm+4D9svMr7Ycsypwa2Yu3ocSGysiVgCOAbYHzgDeB5wLPAv4GzADuBjYJTMX9qvOqSgi9geOaP+wSE+IiDUy89a2bSsDb6D8H/J/wLcz8+F+1Nd0EfEUYOPMvLC6/wxK260L/Ak43jf8w4uIo4HPjzYbtEYXESsOvb5Vv4t7AesDfwS+lZn39a+65ouIrSjD2VcBlgIWUP5uz8rMG/pZW1NFxGKUoe3vpixFB2WYe1Tf30uZgO8TfShvWjCgTzPVi/MRwOuAR4E7eGJdx1UofzzfBN6ZmQ/1q84miojXjfdYe4AXFRHfB1YG3kh5od4fmAcckpkfq44xoA8jIr4KbEVZ0uUNwDMoE9O8KjNvi4h1gR8Al2em18O1iYi1R9l9FbAzZUIgMvOmSSlqComIR4HVM/OO6v6zgQspK71cT5mt9w5g+8y8uW+FNlBEvBD4KfBgZq4XERtS1lRO4AZgPeCfwLaZ+Yf+VdpMEfEYpQNh38z8Wr/rmUoiYk3gRGA25ZrfXYCTgbUp4fxZwD+ArTLzxj6V2VgRsRxwCmUiuLuApwOPAb+jtN3TgKOBeZn5WL/qbKKIOAzYm3IN+nmU93X/jIglKGvIbwd8Gjhq6P2f6jGgTzMRcRQwB3grpbf80ZZ9i/NECDgrM9/ZlyIbKiKuAF4wdHeUQ9OAuaiIuAN4aWZe0bLtHcBXKJOF/I8BfXgRcTuwW2b+qgpH11DeVF3ccszmwKmZuXK/6myq6k3+SP+ZBU98su/f7jCq9lutJaCfTPlQd4/MfCAinkr5gOjezHxN/yptnogYmsF4n8xcGBGnUwLn6zPzoYhYljI6ZuXM3LGftTZR9bv3kerrSmD/zLygv1VNDRHxPUoYOpQymdmWlGD+ysxcUAXQ4ymve3v0r9JmiogvUZZQe21m3lK9zh0B3JiZH46IrSntd0xmHtDPWpumes/yptEuvYuInYGvZ+Yak1fZ9GFAn2Yi4u/Ay1vf2A9zzJbASZk5Y/Iqa77q+uiTKMOJN8/MR/pc0pQSEXcCc9qHKkbER4CDKcPufo4BfRERsQCYnZnXVfd/C+zd9mHH84HzM/MZ/amyuSJiT8obq99RZuYd+tsNyiUDe1NCFKO9Ng6qYQL6LcCrM/OSlmM2Bs7JzBX7U2UzRcR9wIta/nZvA+Zm5mUtx2wAXJqZy/epzMYa+t0Dlgc+A+wB/AI4Ejg5M11HeQTV/7nbZ+aVEbE8cA+wddvf7QsoHTKr9qnMxoqIvwI7t/0/+zTK5aArVx+wbQscm5nr9KnMRqqyxlaZ+X+jHPMi4ILMfOrkVTZ9LNbvAtRz/wTGuk7wMVxibxHVkP/XUCY426/P5UxFFwGHVJdZPC4zDwG+Bnwd2KcfhU0BlwAfr3rbyMwXtb1pmAF8jjKUTG0y84fA8ymX83wOuCczL87Miyivd5dW9w3nw0uePALhThb9f+QRyv8verK7gA1a7t8AtIehNSnXZGoEmXl9Zu4JvIjSC/xl4PaIuDgijoiIQ/tbYSO1L20VLPq+fklGHl006BanzNHUbjlgKFTeRHlPqCc7E/jySJeXVZdf/C+lU0YdMKBPPycB34iIraoh7Y+LYnNKUDqxL9U1XDWZytsp11KrnvdTLhG4OyK2b9v3Dsq1XAdOdlFTxPso12x9o31HROwG3Eq5rvD/TXJdU0Zm3paZu1B+zy6MiA9WM/NqbAGcHhHfiIgPUgLSRx7fWSY9+zRlokI92ZHAcRHxpqoX82PAf0fE1hHx9Ih4GeUDym/3tcrmelJ4zMzfZebelJFse1Ku559Jub5aT3YGJSTNpbyvuxs4qLqUbGiix8/iB7sjOQf4akQ8C6D6gPwrwHWZeVdErEh5z/LrvlXYXPMoH3DcEBHXR8SFEXFmRFwQEddRPtgIyns/dcAh7tNM9QJzFPDvPDFJ3IM8MUncEpRrCd+Smf/oV52anqpr3l4K/Coz/zrM/rnA6zLz9ZNeXMNVIw/Wycyr27avA2wC/CQzH+hLcVNMdR3/NymvgRsDz8vM6/tbVXNV1wq+gDIK4fmUHuGlgWdk5j0RcS9lZuMdMvPa/lXaTBFxAGWypKUpow9WAJZtOeR4yv+5XjbVpv3yCo1fFcBPALalrJqyF7Ah5ZKyWykjOf5CmaDwL30qs7GqDzLOoqw8cxtlkriFwK7VfDAXUka/zHWCx+FFxEsocx88aR104KLM/EU/a5vqDOjTVDW8ZHMW/aO5uH05HUmabqoRRB+lTJ60jW9Qx69aQme9luuqd6fMf3BPXwtrsOoDtq2Af6EE9Eco8x5c5AzaI4uINwEnuKpM56qRGw9mte50lGXDNqVcS/3jzLy/n/U1WTXr+Mspy9LdCpyemX+v9q0PzE/X81YfGNClSkSMe6ZJP+SQJEnSoKk+xP0QZQLWlYDTKSsw3NxyzCrAzZm5VH+qnNoM6FIlIhZSRhuMehgu1TQsP+DonG0nSZKmgojYjzKZ8uco80i8nTLh3ssy8/LqmFWBv2am8511wIA+zfhGv3MRsR5lxsm7KROejSgzz5+UoqYQP+DonG3XHV/3umP7dc62647t1znbrju2X+ci4o+UHvMTq/srACcDsyjLr11VBXSX1e2QAX2a8Y1+d6rJpX4DvDUzf9DveqYSP+DonG3XHV/3umP7dc62647t1znbrju2X+ci4j7gBZl5Q8u2ZYGzgXWAl1CWPTWgd8i1sKefWYzzjb4WlZl/jIiPU9brNqDXkJl/rmaD/g2wih9wjJ9t17VZ+LrXjVnYfp2ahW3XjVnYfp2ahW3XjVnYfp26DtgJ+OrQhsx8ICJ2BX5BWSf9dX2qbVqwB30ashdY/RQR/0VZpmSHftcy1dh2nfN1rzu2X+dsu+7Yfp2z7bpj+3UmIl4LfJvSkXVwZl7Tsm8mcC5l2brl7UHvjAF9mvKNvqRB4+ted2y/ztl23bH9Omfbdcf260w16m8f4BOZeVnbvhnA4cArM9PR2h0woEs1RMSSwEsy84J+1yJJkiQ1UUQsk5kP9ruOqcip76V6nk4ZuqMORMSSEbF1v+uYimw7SZI0FVQdWpv0u46pyoA+gHyj35W7ge36XcQU5gccnbPtuuDrXndsv87Zdt2x/Tpn23XH9uuK71m64BD3AeTahKOLiM2ArYBnAssA9wO3ABdk5q/7WdtUV32iurlLhdVn23XH173u2H6ds+26Y/t1zrbrju3XOd+zdMcL9weTvcDDiIhVgB8CWwLzgVsp6zguDewOfCYizgVenZl396vOphvHBxy+WI/AtptQvu51x/brnG3XHduvc7Zdd2y/UfieZeLYgz5N2QtcX0T8AFgL+LfMvHGY/TOB7wI3ZKbrO7YZ4wOONYCZlOFOfsDRxrbrDV/3umP7dc62647t1znbrju2X32+Z5l4BvRpxj+azkXEQmCrzLxilGM2Bs7OzJUmrbApwg84OmfbdcfXve7Yfp2z7bpj+3XOtuuO7dc537NMPAP6NOMfTeci4lbgPzLznFGOeRnwrcxcZfIqmxr8gKNztl13fN3rju3XOduuO7Zf52y77th+nfM9y8TzGvTpZyfKH80iLzYAmTk/IuYBZ09uWVPCccA3I+JDlOtmbsnMRyNiMWB1YBvgv6vjtKiFlFk7RzMDeGQSaplqbLvu+LrXHduvc7Zdd2y/ztl23bH9Oud7lglmQJ9+/KPp3EeAfwJfBpYHiIjHeGI5wvuAw4GP9qW65vMDjs7Zdt3xda87tl/nbLvu2H6ds+26Y/t1zvcsE8yAPv34R9OhzHwM+FhEHAzMogx9Wg54APgL8LvMfLh/FTaeH3B0zrbrjq973bH9Omfbdcf265xt1x3br3O+Z5lgXoM+zVQvLAcB76H6owGG/aPJzEcnv0JNd9Xal7PwA47abLvO+LrXHduvc7Zdd2y/ztl23bH9uud7loljQJ+m/KORNGh83euO7dc52647tl/nbLvu2H5qIgO6JEmSJEkNsNjYh0iSJEmSpIlmQJckSZIkqQEM6JKkcYuIAyMix/k1v3rMXtX99/a3+kVNVG0RMbM678njOHbF6tjzevj8S0TEZyPitoh4MCKu7NW5R3nO88b5e3HsOM41a7zHToSWn+X5w+yLiLi92v/NER7/8Wr/22o+77h/b0Z4/NDf5yvGefzTIuJdnTyXJGliuMyaJKmO84bZthewDvBF4J6W7fcMc6wmx1uA9wPXAscCd0zic7f/HrS7YnLK6Mq5lGWWNgP+r23fC4FVKDM+7zDC47esbs+u+bz3UGaWvqbm4zr1R+CvlOWSJEkNYECXJI1bZp5HW0iPiDmUgP6FzJw/2TVpWBtXt+/KzLMm+bmnw+/BucCBlIB+dNu+HavbE4E9I+L5mfl4iI+IxavH3ZiZf67zpJl5T/W8k2UVSkCXJDWEQ9wlSZp+lq5u7+prFVPXLynLLb1kmH07ArdR1kgeut9qI+Cp1O89lyTJgC5JmjSLRcS+EXFtRDwUEddHxEcj4vHRXBExp7qG9h0R8d2IeCAi/hoRW1T7l4qID0XE1dW11XdExPER8az2J4uIf4+IiyPi7xFxX0T8pjpvdFJby3lfW533/uq8l0TEv42nAaprjL9dXcO8MCJOBNYe4dg69beeP4E3VZt+W7XnnGr/YtU5flu17YKIODMidmw7z6j/Dr0UERtFxCkRcXf1sx4DPH2EY1eNiCMj4paI+EdEXBgRm0fEWVHNedBybETE2yPi8qr+v0fEqRHxorFqqtY/vgTYMCKe1nLOZYCtKOH7EuAfLBrQhx3eHhGvrn5X7ouIeyPi7IjYtu2YYa9Bj4j1qn+H26vH/zQiNoyIP8XwcxcsExGfiIj51d/JHyLiHS3nm1P9ngC8sHrOA8dqF0nSxHOIuyRpsuwHLAd8HzgdeBXwCUoY27ft2AOA+4D/BZ4HXB4RS1aP2w74NeW62VWA1wA7RcQ2Q0ONq8D8HeA6yjXYjwG7U3o9V66et3ZtEfHfwPsoPajfqTa/HPhuRLwoM/cb6YePiLUooW414FTgRmBn4Ixhjq1b/5B7KNcwv4JyrfSRVa3zI2Ix4ATg1cD1wDHA8tV5z4iId2Xm4W3nW+TfYaSfrxMRMQu4AFgG+CHw96qenYc59hnARcD6wM+B31F+F84B/gY80vaQ44A3AFcBRwBPofyuXBIRczPznDHKOw/YHti0ej4o4XsZ4KzMfCgiLgK2joilqlA/dAxVXUO1Hwx8DJhP+fdMyr/DWRHxpsz89khFRMT6lN+bZwAnU/7tdq3aYjHg5mEe9sVq3w8ovzuvAw6PiCUz80tVHQdR/n1vr9rnvDHaQ5I0GTLTL7/88ssvvzr+oryxT2DmCPv3qvYvBJ7Tsn0NSg/k34HFqm1zqmPvB1ZrO88Hqn2fbts+G3gY+HXLtkspwfKpLdtWAG6lTJgWHdS2VXXs5cCMlmNnAL+v9m1dbZtZ3T+55bjjqm1vatn2FMr1zgmcV7f+Uf5Njq3OOatl2xuqbT8DntKy/VnVeR8BnjXWv8M4fg++QLmOeqSvZVoecz7wT2C7tva8qjrXsS3b/7fa9v6WbYsB36u2z2/Z/upq2/HAEi3b16WE+ZuBpcb4ebaozvHxlm2frratVd3/YHV/TssxNwP/13J/E0pIPhdYrmX7MygfwNw/9Ps0wu/Nj6tte7ZsWxq4cJjfmwOrbTcBq7Zsf1FVw+/afsYEruj3a4hffvnll19PfDnEXZI0Wb6fmdcO3cnMW4HLgBWBldqOvTgzb2vb9hZKD/FHWjdm5qWUnu9/jYjnVZsXA5YFnt9y3L2UsLRuZiZPNp7a9qpu35+Zd7Yceyewf3X3zYv+2GVoPrAHcFVmHtfy2PtbHtuqbv3jMVT/O6vnHTrv9cAhlFF1b2x7zHD/DmP5L0rP7EhfywBExJrA1sDPsqU3u2rPg1tPGGXitddTen4/33LsY5QPbh5tq+Et1e17M/OfLcffAHwVWJNFh6a3+zUlPLdeh74jcG1mDvVaD03At0NV58zq3K3D298MBPCBzPxHSy1/owT+5Sg9+4uIiJWBXYALM/OHLY99iDLqYyRfy8zbW47/LXAL5cMYSVKDOcRdkjRZrhtm29+q2+Vbvge4ofWgiFgeeA5luPZHh7kMe7Xqdhal9/VIyrDdS6KsAX468FPgoirUdVLbLEov5EXDHDu07YXD7ANYrzrPpcPsu5RFh2fXrX88ZgG3VIG83Uj139B+4Dism+ObxX2j6na4Nrmk7f76lA9KzsnMJ4XxzLwpIv5CCcFDXgw8CMwb5ndlg+p2FnDaSMVl5iMRcTGwaXXd/8rVY1ovA7iC8rsxp7o/3PXnL65uXxURL297mrVaahnOiykf1vx6mH2/oow+GM5Iv89rDbNdktQgBnRJ0mR5cJR97Snqgbb7QxN1rUbphR3J0wEy88iIuAN4D2Vo+kaUHsdbImLfzPx+B7WtADyYT1xr/LjMXBAR/6D0hg5nqBd+4TCPfTQiFrRtq1v/eKxA+YBjOLdWt+31t/879NKIbQLc3XZ/5ep2tPrXbLm/IuU9zpi/K2M4F3gp5cOhWZTfhcfDd2Y+FhHnArtFxLKUYfGPUobut9YCw4+UGKuWEX/u6vdmpPXtR/t9liQ1mAFdkjQV3FfdXpiZW4/nAZl5EnBSRKwIbAvsRpks67sRcXW2rF09TguB5SJixSzrVT+umt17WZ48CqDV36vbp7XvqHpnnzJJ9a85wr6hsDxS/RNhxDahjDZodW91u8II52rffh+wMDOHnSG/hvOq29mU4fiPUkJ7q7OBPatjtgAuzczWD1zuqx63bGa2j5QYy1g/91Nrnk+S1HBegy5Jarwq8NwEPK/qqXySiHhjRBxYLVO1VER8JCL+X/XYezLzpMzcG/gk5f++zTso44rqdsth9m1J6V29aoTH/glYMMLzPpcS7od+loms/2kR8fxh9g196DFS/RPht5RJyoZbum122/1rKNeDb9J+YPUBxnPaNl8JrBURqw1z/NyI+GREjHQ5QquhyfpeTPk3vqz9wxmeuA59S8pM9+3rn18JLE6ZqK29ls0i4rCI2GqE57+c0kbD/dzPxYAuSdOOAV2SNFUcSxkKfFi1ZBjweFD5MmU5tLurIeivAw6ORddHn1nd3tjh8wN8KiJmtDz/DOCz1d1vDffAquf0O8B6EdG6bNtSwKfajp3o+r8YEY/32EfEusDHKdfBn9DBeTtSTT73M2C7iHhVSz0r0DY0vWq/44HnRMTbW45dDPgMsGTb6Y+lfGDy5aqNh45fnXJt/4cYfmh9e43/pMyWviPl2vWzhjnmT5QPj95EeV/VHtCPrW4/X/1sQ7U8lTJh3X6UAD/c898CnAnsGBG7tDx2acrP3a1HgKXGPEqSNGkc4i5JmioOA15GdV12RJxHub731ZQh4q+vZjqHEsBOpqyf/gPKNc2zKetmn08JPbVk5gUR8TnKBwFXRsSPq10vB1anLP92wSin+AhlXe3/iYiXAVdTZv9+OoteM9zz+ikfHuxGWeP9yog4nSfWQV8BeHdm/rmD87Z7b0TcM8r+BzPzsOr7d1EmhPt+RJxMWaJsV8pkfO0+CuwEfDUidqe039bAhpRr5VsnjzuWJ37W30fEGZT3PK+hLG+2/wiT5Q3nXJ4Iw4sE9Jbtb6b8Oz5pgrvMPDcivkT5vb0qIk4DHgJeCTwTOCIzzxvl+d8D/BI4taWNXkpZjg4WncG+jluADSLiq8BPM/PHYz1AkjSxDOiSpCkhMx+IiG0py2r9G/BOyrDxi4FPZeb5LceeWoXg/SiBb0VKr/PBlCDd0Uzomfm+iLicEixfT+mBvAJ4V2aeOMZj/x4RWwCfoITiraraX00JYK3H9rz+zMyIeA0wj7IM2Vsoa73/AvhsZrZfW92p/xpj/wLKhy1k5vURsRllmbeXUpZg+znwMdqG22fmnVX7HUYJ6nMoM5nPoczG3rqEWUbEnpSfdW/grZQQfxXwucw8ucbPM9QuD7Do7PJDzqYE9Esyc5EJ2jLzvyLiN5Tf2TdQZl+/ljJS4Lj249see231c3+K8oHOksA5wGspw+f/McrDx/Iu4EtV7UtS1lyXJPVRdLaUqiRJ0uSJiPWAm6s1wFu3L00Zrn5WZu4y7IOnqGoI/7OAG9snmKsuTbge+GpmvrMf9UmSes9r0CVJ0lRwCnBbNSlcq/+i9P72agRAkyRlMr3ft15LX/lAdTsdf25JGlj2oEuSpMaLiHmUyQBvpoT1+4GNKcO+rwQ2HW54+VQXEZ8F3k8ZEn865ZrzLYDNgDOAndM3c5I0bRjQJUnSlBARewDvBp5PmeDuJuBHwKGZeV8/a5so1TD3vYH/pCwntyRlaPvxlOvp666tLklqMAO6JEmSJEkN4DXokiRJkiQ1gAFdkiRJkqQGMKBLkiRJktQABnRJkiRJkhrAgC5JkiRJUgP8f05YzdJCWdFmAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def get_overlap_old(modules):\n",
    "    total_overlap = 0\n",
    "    for m in modules:\n",
    "        total_overlap += len([n for n in m if n in all_genes_in_modules])\n",
    "    return total_overlap\n",
    "\n",
    "def get_number_of_modules(threshold):\n",
    "    to_remove = []\n",
    "    for u, v, weight in C_abs.edges(data='weight'):\n",
    "        if weight < threshold:\n",
    "            to_remove.append((u, v))\n",
    "    C_abs_copy = C_abs.copy()\n",
    "    C_abs_copy.remove_edges_from(to_remove)\n",
    "    modules = [c for c in sorted(nx.strongly_connected_components(C_abs_copy), key=len, reverse=True) if len(c) >= 5]\n",
    "    module_sizes = [len(m) for m in modules]\n",
    "    return len(module_sizes), get_overlap_old(modules)\n",
    "\n",
    "if compute_optimal_cutoff:\n",
    "    thresholds = np.linspace(.1, .2, 11) #np.arange(.1, .2, )\n",
    "    number_of_modules = []\n",
    "    for thr in thresholds:\n",
    "        number_of_modules.append(get_number_of_modules(thr))\n",
    "    overlap = [i[1] for i in number_of_modules]\n",
    "    number_of_modules = [i[0] for i in number_of_modules]\n",
    "    \n",
    "    fig = plt.figure(figsize=(14, 8))\n",
    "    #plt.subplot(2, 1, 1)\n",
    "    plt.bar(x=list(range(len(number_of_modules))), height=number_of_modules)\n",
    "    _ = plt.xticks(ticks=list(range(len(number_of_modules))), labels=['{0:.3f}'.format(i) for i in thresholds], fontsize=15)\n",
    "    plt.xlabel('Thresholds for Edge Weight', fontsize=20)\n",
    "    plt.ylabel('Number of Modules of Size $\\leq$ 5', fontsize=20)\n",
    "    print (number_of_modules)\n",
    "    plt.gca().tick_params(axis='y', which='major', labelsize=20)\n",
    "    plt.gca().tick_params(axis='x', rotation=90)\n",
    "    #plt.subplot(2, 1, 2)\n",
    "    #plt.bar(x=list(range(len(number_of_modules))), height=overlap)\n",
    "    #_ = plt.xticks(ticks=list(range(len(number_of_modules))), labels=['{0:.3f}'.format(i) for i in thresholds], fontsize=15)\n",
    "    #plt.xlabel('Thresholds for Edge Weight', fontsize=20)\n",
    "    #plt.ylabel('Number of Genes Overlapping', fontsize=20)\n",
    "    #print (overlap)\n",
    "    #plt.gca().tick_params(axis='y', which='major', labelsize=20)\n",
    "    #plt.gca().tick_params(axis='x', rotation=90)\n",
    "    plt.tight_layout()\n",
    "    fig.savefig(os.path.join(model_dir, 'SCCs', 'module_sizes_posonly_finegrained.svg'))\n",
    "    "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compute the SCCs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# normalization upon summation (same as previous submission)\n",
    "#min_edge_weight = 0.1339 0.145 (0.24 for abs)\n",
    "\n",
    "# NO NORM = OLD METHOD\n",
    "# .112 for summed, ranked and row-normalized \n",
    "# .089 for summed and row-normalized (no ranking)\n",
    "# 0.27 for nothing\n",
    "\n",
    "# NOSUM\n",
    "# .115 for non-sum, ranked and row normalized\n",
    "# 0.063 for non-sum, row-normalized\n",
    "# 0.042 for non-sum, nothing\n",
    "# .039 for non-sum, row-normalized and scaled by EMOGI score\n",
    "\n",
    "# .707 for ranked non-sum with wrong (column) normalization\n",
    "\n",
    "# CTRL\n",
    "# 0.0373 for nothing\n",
    "# .067 for row-normalization\n",
    "# .111 for ranking + row-normalization\n",
    "\n",
    "# NOSUM + MASK=1\n",
    "# 0.061 for nothing\n",
    "# 0.065 for row-normalization\n",
    "# 0.112 for ranking and row-normalization\n",
    "min_edge_weight = 0.14\n",
    "\n",
    "G = C_abs.copy()\n",
    "edge_weights = nx.get_edge_attributes(G,'weight')\n",
    "G.remove_edges_from((e for e, w in edge_weights.items() if w <= min_edge_weight))\n",
    "\n",
    "#nw_thr = np.where(lrp_neighbor_matrix_abs <= min_edge_weight, 0, lrp_neighbor_matrix)\n",
    "#nw_thr_df = pd.DataFrame(data=nw_thr, index=node_names[:, 1], columns=node_names[:, 1])\n",
    "#G = nx.from_pandas_adjacency(nw_thr_df, create_using=nx.MultiDiGraph)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[149, 16, 9, 8, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n",
      "149\n",
      "9\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['Prob_pos'].to_dict(), name='OutputProb')\n",
    "#nx.set_node_attributes(G=G, values=pred.set_index('Name')['label'].to_dict(), name='KnownCancerGene')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['Pred_Cancer_Gene'].to_dict(), name='PredictedCancerGene')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['essentiality'].to_dict(), name='Essentiality')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['DatabaseKnowledge'].to_dict(), name='DatabaseKnowledge')\n",
    "\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['CGC'].to_dict(), name='CGC')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['Bailey'].to_dict(), name='BaileyEtAl')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['NCGCandidates'].to_dict(), name='NCGCandidates')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['OncoKB'].to_dict(), name='OncoKB')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['DriverDB'].to_dict(), name='DriverDB')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['ONGene_TSGene'].to_dict(), name='ONGeneTSGene')\n",
    "\"\"\"\n",
    "print ([len(c) for c in sorted(nx.strongly_connected_components(G), key=len, reverse=True) if len(c) > 1])\n",
    "print (len(max(nx.strongly_connected_components(G), key=len)))\n",
    "nodes_component = list(max(nx.strongly_connected_components(G), key=len))\n",
    "x = pd.DataFrame(nodes_component, columns=['Name'])\n",
    "all_components = [list(c) for c in sorted(nx.strongly_connected_components(G), key=len, reverse=True) if len(c) > 1]\n",
    "all_components_larger5 = [list(c) for c in sorted(nx.strongly_connected_components(G), key=len, reverse=True) if len(c) >= 5]\n",
    "print (len(all_components_larger5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "45"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len([len(i) for i in all_components if len(i) > 2])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'all_genes_in_modules' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-17-6d97c13d9bc8>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mflat_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mgene\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mscc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mall_components\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgene\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mscc\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscc\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m5\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mflat_list\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mall_genes_in_modules\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      3\u001b[0m \u001b[0;31m#[i for i in all_components[0] if i in ['CCNB1', 'CCNB2', 'CCNC', 'CDK1', 'CKS1B', 'MED12L', 'ERBB2', 'NUP93']]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mflat_list\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mall_genes_in_modules\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m<ipython-input-17-6d97c13d9bc8>\u001b[0m in \u001b[0;36m<listcomp>\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mflat_list\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mgene\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mscc\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mall_components\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mgene\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mscc\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mscc\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m5\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mflat_list\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mall_genes_in_modules\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      3\u001b[0m \u001b[0;31m#[i for i in all_components[0] if i in ['CCNB1', 'CCNB2', 'CCNC', 'CDK1', 'CKS1B', 'MED12L', 'ERBB2', 'NUP93']]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mflat_list\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mall_genes_in_modules\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'all_genes_in_modules' is not defined"
     ]
    }
   ],
   "source": [
    "flat_list = [gene for scc in all_components for gene in scc if len(scc) > 5]\n",
    "len([i for i in flat_list if i in all_genes_in_modules])\n",
    "#[i for i in all_components[0] if i in ['CCNB1', 'CCNB2', 'CCNC', 'CDK1', 'CKS1B', 'MED12L', 'ERBB2', 'NUP93']]\n",
    "len([i for i in flat_list if i in all_genes_in_modules])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Module lrp_neighbors_new_comp_10_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_9_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_8_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_7_thr_0.19.gml: Overlap: 4\n",
      "Module lrp_neighbors_new_comp_6_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_1_thr_0.19.gml: Overlap: 2\n",
      "Module lrp_neighbors_new_comp_2_thr_0.19.gml: Overlap: 5\n",
      "Module lrp_neighbors_new_comp_3_thr_0.19.gml: Overlap: 3\n",
      "Module lrp_neighbors_new_comp_4_thr_0.19.gml: Overlap: 1\n",
      "Module lrp_neighbors_new_comp_5_thr_0.19.gml: Overlap: 2\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "17"
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "old_modules_dir = '../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/'\n",
    "all_genes_in_modules = []\n",
    "for gml in os.listdir(old_modules_dir):\n",
    "    if gml.endswith('.gml') and not 'nonzero' in gml:\n",
    "        module = nx.read_gml(os.path.join(old_modules_dir, gml))\n",
    "        print (\"Module {}: Overlap: {}\".format(gml, len([n for n in module.nodes() if n in flat_list])))\n",
    "        all_genes_in_modules += [n for n in module.nodes() if n in flat_list]\n",
    "len(all_genes_in_modules)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3\n",
      "96        MITF\n",
      "2032    KCNIP3\n",
      "2711     SMAD1\n",
      "Name: Unnamed: 1, dtype: object\n",
      "2\n",
      "128     NPAS3\n",
      "2663     TP53\n",
      "Name: Unnamed: 1, dtype: object\n",
      "0\n",
      "0\n",
      "0\n",
      "0\n",
      "0\n",
      "0\n",
      "0\n"
     ]
    }
   ],
   "source": [
    "for comp in all_components_larger5:\n",
    "    print (len(tfs[tfs['Unnamed: 1'].isin(comp)]))\n",
    "    if len(tfs[tfs['Unnamed: 1'].isin(comp)]) > 0:\n",
    "        print (tfs[tfs['Unnamed: 1'].isin(comp)]['Unnamed: 1'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['HGS']\n",
      "0\n",
      "['CCNB2']\n",
      "4\n",
      "['STMN3']\n",
      "158\n"
     ]
    }
   ],
   "source": [
    "module = nx.read_gml(os.path.join(old_modules_dir, 'lrp_neighbors_new_comp_1_thr_0.19.gml'))\n",
    "n = 0\n",
    "for c in all_components:\n",
    "    overlap = [n for n in module.nodes() if n in c]\n",
    "    if len(overlap) > 0:\n",
    "        print (overlap)\n",
    "        print (n)\n",
    "    n += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/4AAALeCAYAAAATR8pPAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAABVXElEQVR4nO3ceZjWBb0+/hvcLZWUSA0l45THWCQEERfEDVwxZ5gZNtlCyK2yXLI639Q0Ty6leaofHg0tjVOSlYqIogKyiKzOgpqRaaSmqEgjIk4Pvz++5+uVmeYCfGaeeb3+a55nnrmf6bq6urnf87TZsGHDhgAAAABlqW3RAQAAAIBNR/EHAACAMqb4AwAAQBlT/AEAAKCMKf4AAABQxhR/AAAAKGOKPwAAAJQxxR8AAADKmOIPAAAAZUzxBwAAgDKm+AMAAEAZU/wBAACgjCn+AAAAUMYUfwAAAChjij8AAACUMcUfAAAAypjiDwAAAGVM8QcAAIAypvgDAABAGVP8AQAAoIwp/gAAAFDGFH8AAAAoY4o/AAAAlDHFHwAAAMqY4g8AAABlTPEHAACAMqb4AwAAQBlT/AEAAKCMKf4AAABQxhR/AAAAKGOKPwAAAJQxxR8AAADKmOIPAAAAZUzxBwAAgDKm+AMAAEAZU/wBAACgjCn+AAAAUMYUfwAAAChjij8AAACUMcUfAAAAypjiDwAAAGVM8QcAAIAypvgDAABAGVP8AQAAoIwp/gAAAFDGFH8AAAAoY4o/AAAAlDHFHwAAAMqY4g8AAABlTPEHAACAMqb4AwAAQBlT/AEAAKCMKf4AAABQxhR/AAAAKGOKPwAAAJQxxR8AAADKmOIPAAAAZUzxBwAAgDKm+AMAAEAZU/wBAACgjCn+AAAAUMYUfwAAAChjij8AAACUsS2LDgAAAEDzNn78+Dz++OOZPn16tt566yTJBRdckLvuuitbbbVV2rRpkz333DNf+cpX0rNnzze+r6GhIRMnTkxtbW3atm2bjh07ZvDgwRk0aFCSZO3atfn//r//L/fff39eeuml7LTTTunSpUtGjhyZrl27Jkl+97vf5bLLLsvjjz+eD33oQ6moqMi4ceM2/y+hBbP4AwAA8LaefvrpLFu2LG3atMns2bPf9NjIkSPzwAMPZNasWRk8eHDOPvvslEqlJEltbW2+8IUvZL/99stvfvOb3HvvvTn//PMzb968JMn69evzhS98Ib///e9z1VVXZfbs2ZkyZUoGDhz4xnOS5Bvf+EZ69uyZ+++/P9dee21uueWWt+TgnSn+AAAAvK2pU6ema9euOf7443PHHXf80+e0adMmRx99dNasWZMXXnghSXL11Vfn+OOPz6hRo9KuXbu0adMm++yzT/7zP/8zSXLnnXfmL3/5S6688sp07tw5bdu2zXbbbZcjjjgi48ePf+O1n3766Rx99NFvXAz06NEjK1as2PRvvIwo/gAAALytqVOn5phjjskxxxyT+fPn58UXX3zLc0qlUqZOnZrdd989u+yyS9atW5e6urocccQRb/u6Dz30UPr27ZvtttvuHX/+sGHDMnXq1DQ1NeXJJ59MXV1d+vTp84HfV2ui+AMAAPBPLVu2LM8880yOOuqo7LPPPunYsWPuuuuuNx6/6aab0r9//xx88MG58sorc+qpp6Zt27ZZs2ZNSqVS2rdv/8Zz//znP2fZsmVZt25dkmT16tXZZZdd3nj8d7/7Xfr3759+/fqloqLija8fcsghuffee3PggQemsrIyJ554Yj7zmc9shndfPhR/AAAA/qk77rgjBxxwQNq1a5ckOfroo9907j9ixIjMnDkzc+fOzc9+9rNcffXVmTdvXnbccce0bds2q1atypo1a/Ktb30r5557bqZPn57HHnssSbLTTjtl1apVb7zWpz/96cycOTNXXHFFXn/99STJmjVrcsYZZ+SUU07J/Pnzc+edd2b+/Pm55ZZbNt8voQz4VH8AAADe4rXXXss999yTUqmUAQMGJElef/31/PWvf83vfve7Nz23TZs26dy5c/bdd9/MmTMnBx54YLp165Zf/vKXmTx5cl544YU0NDRkzZo12XvvvZMkvXv3zsSJE/Pqq6++7bn/ypUrs8UWW+S4445LknTo0CEDBgzI3LlzU1VVtQnffXmx+AMAAPAWM2fOzBZbbJFbbrklkydPzuTJkzNlypR89rOfzdSpU9/y/D/+8Y9ZtmxZPvnJTyZJPv7xj+f73/9+dt999zz++OPZa6+9st122+Wiiy5Kkhx//PFp3759zj777KxYsSKlUinr16/P8uXL33jNTp06ZcOGDbnrrrtSKpXywgsv5J577smnPvWpzfNLKBNtNmzYsKHoEAAAADQvZ555Zj75yU/mrLPOetPX77nnnlx++eXp06dP7rnnnmy11VbZsGFDdtpppxx77LEZOXJkRo4cmblz5+ass87KM888k4cffjhbbLFF9thjj1RXV7+x4Dc2NmbixIm5//77s3r16rRr1y6f+cxnMmrUqHTp0iVJsnDhwlxzzTV58skns80226Rfv345++yzs+22227230lLpfgDAACwUcyfPz/Dhg3LzjvvnFtvvTWdOnUqOhJx6g8AAMAHVCqV8q1vfSvHHXdcTjrppCxcuFDpb0Z8uB8AAADv23PPPZeKioo8+eSTueWWW3LEEUcUHYl/YPEHAADgffn1r3+d7t27Z/vtt09dXZ3S30wp/gAAALwnTU1NGTduXMaNG5dzzjknd999d9q1a1d0LN6GU38AAADetUcffTSDBw9OU1NT7r///nTv3r3oSPwLFn8AAADelR/+8Ic5+OCD06NHj9TW1ir9LYTFHwAAgHfU2NiYoUOH5qGHHsp//dd/ZciQIUVH4j1Q/AEAAHhbc+bMyYgRI9KhQ4csXrw4HTt2LDoS75FTfwAAAN6iVCrl61//egYNGpTq6uo8+OCDSn8LZfEHAADgTZ5++ulUVlbmz3/+c2699db079+/6Eh8ABZ/AAAA3jBlypT07NkzH/nIR9LQ0KD0lwHFHwAAgDQ1NWX06NGZMGFCzj///Nx5553ZYYcdio7FRuDUHwAAoJVraGjI4MGDkySzZ89Oly5dCk7ExmTxBwAAaMWuuuqq9OvXLwcccEDq6uqU/jJk8QcAAGiF1qxZk5qamixdujQTJ058Y/Gn/Fj8AQAAWpmZM2ema9euefnll7NkyRKlv8wp/gAAAK1EqVTKOeeck4qKipx88smZM2dOdt9996JjsYk59QcAAGgFVq5cmYqKijz33HO5/fbbc9BBBxUdic3E4g8AAFDmbr755vTs2TO77bZb6uvrlf5WxuIPAABQptavX5+xY8fmrrvuykUXXZTTTjut6EgUQPEHAAAoQw8//HCqq6uz1VZbZe7cudl7772LjkRBnPoDAACUmSuuuCKHH354Dj300Cxbtkzpb+Us/gAAAGVi9erVqaqqSn19fX7yk5/kxBNPLDoSzYDFHwAAoAzcc8896dq1a9atW5eHH35Y6ecNij8AAEALViqVctZZZ6WmpiannHJKHnjggXTo0KHoWDQjTv0BAABaqCeffDIVFRV56aWXMnXq1PTt27foSDRDFn8AAIAW6MYbb0zv3r3TqVOn1NfXK/28LYs/AABAC7Ju3bqMHj06M2bMyHe+852MHz++6Eg0c4o/AABAC7FkyZLU1NRk++23z4IFC9K5c+eiI9ECOPUHAABoAS699NIcddRROeqoo7J48WKln3fN4g8AANCMvfDCC6mqqsqjjz6an/70pznuuOOKjkQLY/EHAABopqZNm5Zu3bplw4YNqa2tVfp5XxR/AACAZqZUKuX000/P8OHDc9ppp+X+++9P+/bti45FC+XUHwAAoBlZsWJFKioq8sorr+Tuu+9Or169io5EC2fxBwAAaCauv/76HHDAAdl7771TX1+v9LNRWPwBAAAKtnbt2px88sl54IEHctlll2XMmDFFR6KMKP4AAAAFWrhwYYYMGZIdd9wxCxYsyF577VV0JMqMU38AAICCXHjhhRk4cGCOP/74LF68WOlnk7D4AwAAbGarVq1KRUVF/vCHP2Ty5MkZOHBg0ZEoYxZ/AACAzei2225Lt27dsvXWW6e2tlbpZ5NT/AEAADaDpqamjB8/PmPGjMlZZ52VGTNmZOeddy46Fq2AU38AAIBN7PHHH09FRUVee+213HvvvenRo0fRkWhFLP4AAACb0MSJE9O3b99069Yt9fX1Sj+bncUfAABgE2hsbMzw4cMzf/78XHXVVRkxYkTRkWilFH8AAICNbP78+Rk6dGjat2+fRYsWZc899yw6Eq2YU38AAICNpFQq5T/+4z9y3HHHpbKyMg899JDST+Es/gAAABvBs88+m4qKivzpT3/KLbfckiOOOKLoSJDE4g8AAPCB/epXv0qPHj2yww47pK6uTumnWVH8AQAA3qempqaMHTs248ePz7nnnpvp06enXbt2RceCN3HqDwAA8D488sgjGTx4cP72t79l1qxZ6dq1a9GR4J+y+AMAALxH11xzTQ4++ODst99+qa+vV/pp1iz+AAAA71JjY2NqamqyaNGi/OhHP0pNTU3RkeBfUvwBAADehdmzZ+fkk0/OrrvumsWLF6djx45FR4J3xak/AADAOyiVSjnvvPPyuc99LkOHDs38+fOVfloUiz8AAMDbWLlyZSorK/Pss8/m17/+dQ499NCiI8F7ZvEHAAD4J375y19mv/32S/v27dPQ0KD002Ip/gAAAH+nqakpI0eOzKmnnppvfvObmTp1aj784Q8XHQveN6f+AAAA/6u+vj5VVVVp06ZNZs+enS5duhQdCT4wiz8AAECS733vezn00EPTt2/f1NbWKv2UDYs/AADQqq1ZsybV1dVZtmxZrr322lRWVhYdCTYqiz8AANBq3XfffenSpUvWrFmTZcuWKf2UJcUfAABodUqlUr761a9m8ODBGT16dObMmZNdd9216FiwSTj1BwAAWpWnnnoqFRUVWbVqVW6//fYcdNBBRUeCTcriDwAAtBo333xzevXqlY9//OOpr69X+mkVLP4AAEDZW79+fUaPHp277747l1xySSZMmFB0JNhsFH8AAKCsLVu2LNXV1dlmm20yf/78fOpTnyo6EmxWTv0BAICyddlll+WII45I//79s3TpUqWfVsniDwAAlJ0XX3wx1dXVaWhoyKRJkzJo0KCiI0FhLP4AAEBZmT59erp3757169enrq5O6afVU/wBAICyUCqV8qUvfSlDhw7NKaecktmzZ6d9+/ZFx4LCOfUHAABavCeeeCKVlZV5+eWXM23atPTp06foSNBsWPwBAIAW7YYbbkifPn2y1157pa6uTumHf2DxBwAAWqR169Zl5MiRuf/++3PppZdm3LhxRUeCZknxBwAAWpxFixZlyJAh+dCHPpQHH3wwnTt3LjoSNFtO/QEAgBblkksuyYABAzJw4MAsXrxY6Yd/weIPAAC0CKtWrUpVVVUee+yx3HTTTTn22GOLjgQtgsUfAABo9qZOnZru3bunTZs2qa2tVfrhPVD8AQCAZqupqSmnnnpqRo4cmTPOOCP33Xdf2rdvX3QsaFGc+gMAAM3SihUrUlFRkbVr1+aee+5Jz549i44ELZLFHwAAaHauu+669OnTJ/vss0/q6uqUfvgALP4AAECzsXbt2owYMSJz5szJlVdemVGjRhUdCVo8xR8AAGgW5s+fn+HDh+cjH/lIFi5cmE6dOhUdCcqCU38AAKBwF1xwQY477riceOKJSj9sZBZ/AACgMM8991wqKyvzxBNP5H/+538yYMCAoiNB2bH4AwAAhbjtttuy7777Zrvttkt9fb3SD5uI4g8AAGxWTU1NGT9+fMaMGZOvfOUrufvuu9OuXbuiY0HZcuoPAABsNo899lgqKyvz+uuv57777su+++5bdCQoexZ/AABgs/jxj3+cgw46KD169EhdXZ3SD5uJxR8AANikGhsbM2zYsDz44IO5+uqrM3z48KIjQaui+AMAAJvMnDlzMmLEiHz0ox/NkiVL0rFjx6IjQavj1B8AANjoSqVSvvGNb2TQoEGpqqrKggULlH4oiMUfAADYqJ555plUVlbmT3/6U6ZMmZLDDz+86EjQqln8AQCAjWbKlCn57Gc/m5122ikNDQ1KPzQDij8AAPCBNTU1ZcyYMZkwYUK+9rWvZdq0adlxxx2LjgXEqT8AAPABNTQ0ZPDgwUmSWbNmpWvXrgUnAv6exR8AAHjffvCDH6Rfv37p06dP6urqlH5ohiz+AADAe/bXv/41NTU1Wbx4cX784x+nurq66EjA21D8AQCA92TmzJkZOXJkdt999yxdujS777570ZGAd+DUHwAAeFdKpVLOPffcVFRUZPjw4Zk3b57SDy2AxR8AAPiXVq5cmYqKijz33HP5zW9+k379+hUdCXiXLP4AAMA7+p//+Z/st99+6dChQ+rr65V+aGEs/gAAwD+1fv36jB07NtOmTcuFF16YM844o+hIwPug+AMAAG9RW1ubqqqqbLnllpkzZ0722WefoiMB75NTfwAA4E2uvPLKHHbYYTnkkEPy8MMPK/3Qwln8AQCAJMnq1atTXV2durq6XHfddTnppJOKjgRsBBZ/AAAgM2bMSLdu3fLKK69k6dKlSj+UEcUfAABasVKplLPOOivV1dUZM2ZMHnjggey6665FxwI2Iqf+AADQSj311FM56aST8uKLL2bq1Knp27dv0ZGATcDiDwAArdBNN92UXr16Zc8990xdXZ3SD2XM4g8AAK3Ia6+9llGjRmXGjBm55JJLMmHChKIjAZuY4g8AAK3EkiVLMmTIkGy77bZZsGBBOnfuXHQkYDNw6g8AAK3ApZdemqOOOipHHHFElixZovRDK2LxBwCAMvbiiy9m8ODBefTRRzNp0qQMGjSo6EjAZmbxBwCAMnXXXXelW7du+dvf/pba2lqlH1opxR8AAMpMqVTKGWeckWHDhmXChAmZNWtW2rdvX3QsoCBO/QEAoIw88cQTqaioyJo1azJ9+vT07t276EhAwSz+AABQJiZNmpT9998/nTt3Tn19vdIPJLH4AwBAi7du3bqMGDEis2bNymWXXZYxY8YUHQloRhR/AABowRYuXJghQ4Zkhx12yEMPPZS99tqr6EhAM+PUHwAAWqhvf/vbGThwYI499tgsWbJE6Qf+KYs/AAC0MKtWrUplZWV+//vfZ/LkyRk4cGDRkYBmzOIPAAAtyO23357u3btnyy23TF1dndIP/EuKPwAAtABNTU35whe+kNGjR+fMM8/Mvffem5133rnoWEAL4NQfAACaud///vepqKjIunXrcs8996Rnz55FRwJaEIs/AAA0Y9dee20OOOCAdOnSJfX19Uo/8J5Z/AEAoBl65ZVXMnz48MybNy/f+973MnLkyKIjAS2U4g8AAM3M/PnzM2zYsOy8885ZuHBhOnXqVHQkoAVz6g8AAM1EqVTKt771rRx33HE56aSTlH5go7D4AwBAM/Dcc8+loqIiTz75ZG655ZYcccQRRUcCyoTFHwAACvbrX/863bt3z/bbb5+6ujqlH9ioFH8AAChIU1NTxo0bl3HjxuWcc87J3XffnXbt2hUdCygzTv0BAKAAjz76aAYPHpympqbcf//96d69e9GRgDJl8QcAgM3shz/8YQ4++OD06NEjtbW1Sj+wSVn8AQBgM2lsbMzQoUPz0EMP5b/+678yZMiQoiMBrYDiDwAAm8EDDzyQk08+OR06dMjixYvTsWPHoiMBrYRTfwAA2IRKpVK+/vWv58QTT0x1dXUefPBBpR/YrCz+AACwiTz99NOprKzMn//859x6663p379/0ZGAVsjiDwAAm8CUKVPSs2fPfOQjH0lDQ4PSDxRG8QcAgI2oqakpo0aNyoQJE/L1r389d955Z3bYYYeiYwGtmFN/AADYSBoaGjJ48OAkyezZs9OlS5eCEwFY/AEAYKO46qqr0q9fvxxwwAGpq6tT+oFmw+IPAAAfwJo1a1JTU5OlS5dm4sSJbyz+AM2FxR8AAN6n+++/P127ds3LL7+cpUuXKv1As6T4AwDAe1QqlXLOOeeksrIyJ598cubMmZPddtut6FgA/5RTfwAAeA9WrlyZioqKPPfcc7n99ttz0EEHFR0J4B1Z/AEA4F26+eab07Nnz+y2226pr69X+oEWweIPAAD/wvr16zN27Njcddddueiii3LaaacVHQngXVP8AQDgHTz88MOprq7OVlttlblz52bvvfcuOhLAe+LUHwAA3sYVV1yRww8/PIceemiWLVum9AMtksUfAAD+werVq1NVVZX6+vr85Cc/yYknnlh0JID3zeIPAAB/5+67707Xrl2zbt26PPzww0o/0OIp/gAAkKRUKuXLX/5yhgwZklNOOSUPPPBAOnToUHQsgA/MqT8AAK3ek08+mYqKirz00kuZOnVq+vbtW3QkgI3G4g8AQKt24403pnfv3unUqVPq6+uVfqDsWPwBAGiV1q1bl9GjR+fee+/Nd77znZxyyilFRwLYJBR/AABanSVLlqS6ujof+tCH8uCDD6Zz585FRwLYZJz6AwDQqlx66aU56qijMnDgwCxevFjpB8qexR8AgFbhhRdeSFVVVR599NH87Gc/y7HHHlt0JIDNwuIPAEDZmzZtWrp165YNGzaktrZW6QdaFcUfAICy9be//S2nn356hg8fntNPPz33339/2rdvX3QsgM3KqT8AAGVpxYoVqaysTGNjY+6+++706tWr6EgAhbD4AwBQdq6//voccMAB+fSnP536+nqlH2jVLP4AAJSNtWvX5uSTT84DDzyQyy+/PKNHjy46EkDhFH8AAMrCQw89lKFDh2bHHXfMQw89lE984hNFRwJoFpz6AwDQ4l100UU5+uijc/zxx2fx4sVKP8DfsfgDANBirVq1KhUVFfnDH/6QyZMnZ+DAgUVHAmh2LP4AALRIt912W7p165att946tbW1Sj/A21D8AQBoUZqamjJhwoSMGTMmZ511VmbMmJGdd9656FgAzZZTfwAAWozHH388FRUVee2113LvvfemR48eRUcCaPYs/gAAtAgTJ05M3759071799TX1yv9AO+SxR8AgGatsbExw4cPz/z583P11Vdn+PDhRUcCaFEUfwAAmq158+Zl+PDhad++fRYvXpw99tij6EgALY5TfwAAmp1SqZRvfvObOf7441NZWZkFCxYo/QDvk8UfAIBm5dlnn01lZWWeeuqpTJkyJYcffnjRkQBaNIs/AADNxq9+9av06NEjO+ywQxoaGpR+gI1A8QcAoHBNTU0ZO3Zsxo8fn/POOy933XVXdtxxx6JjAZQFp/4AABRq+fLlqaqqSqlUyqxZs9K1a9eiIwGUFYs/AACFueaaa3LIIYekV69eqaurU/oBNgGLPwAAm11jY2NqamqyaNGi/PjHP051dXXRkQDKluIPAMBmNWvWrIwcOTK77bZbFi9enI4dOxYdCaCsOfUHAGCzKJVK+drXvpaTTjopw4YNy7x585R+gM3A4g8AwCb35z//OZWVlXnmmWfym9/8Jv369Ss6EkCr0WbDhg0big4BAEDxxo8fn8cffzzTp0/P1ltvnSS54IILctddd2WrrbZKmzZtsueee+YrX/lKevbs+cb3NTQ0ZOLEiamtrU3btm3TsWPHDB48OIMGDUqS/OxnP8tpp52W7bffPp/85Cez8847p0uXLhk5cuQbH+Z3wgkn5IUXXsgWW2yRJOnevXt++MMfbubfAEB5svgDAJCnn346y5Yty4c//OHMnj07Rx555BuPjRw5Mqeddlo2bNiQ3/72tzn77LMzY8aMtG3bNrW1tTn99NMzbty4XHTRRdlpp53y6KOP5sYbb8yxxx6bUaNGZcqUKdl///1zww03ZK+99sprr72WefPmZd68eW/6FP+rrroq+++/fxFvH6Cs+Rt/AAAyderUdO3aNccff3zuuOOOf/qcNm3a5Oijj86aNWvywgsvJEmuvvrqHH/88Rk1alTatWuXNm3aZJ999smIESPSrVu3zJ49O7169crdd9+dzp07p23bttluu+1yxBFHZPz48ZvzLQK0Woo/AACZOnVqjjnmmBxzzDGZP39+Xnzxxbc8p1QqZerUqdl9992zyy67ZN26damrq8sRRxzxpuddcskl6dGjR/r27Zvhw4fnqKOOynbbbfcvM3zzm9/MkUcemdNPPz2/+93vNtp7A2jtFH8AgFZu2bJleeaZZ3LUUUdln332SceOHXPXXXe98fhNN92U/v375+CDD86VV16ZU089NW3bts2aNWtSKpXSvn37JMm6devy+c9/PrW1tbnsssvyk5/8JGvWrMkuu+zyxmv97ne/S//+/dOvX79UVFS88fWLL744t99+e+6444706tUrZ5xxRv76179uvl8CQBlT/AEAWrk77rgjBxxwQNq1a5ckOfroo9907j9ixIjMnDkzc+fOzc9+9rNcffXVmTdvXnbccce0bds2q1atyo9+9KN8/OMfT7t27dKzZ883rgB22mmnrFq16o3X+vSnP52ZM2fmiiuuyOuvv/7G1/fdd99ss8022XbbbTNmzJjssMMOWbp06eb5BQCUOR/uBwDQir322mu55557UiqVMmDAgCTJ66+/nr/+9a9vObdv06ZNOnfunH333Tdz5szJgQcemK5du+bLX/5y6uvrc+CBB+biiy/O7373u+y9995Jkt69e2fixIl59dVX39W5/9//LAA2Dos/AEArNnPmzGyxxRa55ZZbMnny5EyePDlTpkzJ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vvvuWbx4cTp27Fh0JAAAmjmn/gAtQKlUyle/+tVUVFTk5JNPzrx585R+AADeFYs/QDP35JNPpqKiIi+++GJuv/32HHTQQUVHAgCgBbH4AzRjkyZNSu/evdOpU6fU19cr/QAAvGeKP8D7dMIJJ+TAAw/MIYcckgEDBuSCCy7I2rVrM378+PzmN79JkixevDjHHnvsG9/z+uuv55xzzsnYsWPzyiuv5O67705FRUUOPfTQHHXUUfnWt76VV155JWvXrs3gwYMzYcKE7Ljjjnn++edz0kknvfEz/p9FixZlwoQJOfTQQ3PCCSds7l8BAAAtgOIP8AFcddVVeeCBB3LTTTdl+fLluf7669/2uevXr88555yTv/71r/nhD3+YD33oQ9l3333zk5/8JLNmzcpvf/vb/O1vf8t5552Xbt26ZcWKFTnkkEPy85//PA888EAmT56cxx57LDfccMMbr7nddtvlxBNPzJe+9KXN8G4BAGiJFH+AjaBDhw456KCDsmLFin/6+Lp163LWWWflb3/7W66++upst912SZKPfexjadeuXZL/+w8Ds2bNynXXXZdBgwZl8eLF2X777d94jV122SV9+/bNY4899sbXunTpkmOPPdYH/QEA8LYUf4CN4C9/+Uvmzp2bvffe+y2PrV+/Pl/84hezzTbb5Morr8w222zzpseXLVuWgw8+OB06dMi8efNy+eWX5/vf/37atn3z/0Q/99xzmTt3bvbYY49N+l4AACgvPtUf4AP46le/mi222CIf/vCHc/DBB2fs2LE588wz3/SctWvXpra2Nt/5zney9dZbv+U1Xn311ey0004ZM2ZMOnXqlBNPPPEtP6NNmzZZu3ZtevfunQkTJmzS9wQAQHlR/AE+gCuvvDL777//Oz6nXbt2Ofvss/Otb30r2223Xfr27ZskaWxsTI8ePdKpU6ccdthhOeGEE9K2bducf/75ufnmm9/yM5YsWZJvfOMbWb16dXbYYYdN+r4AACgfTv0BNoPDDz883/zmN3Peeedl0aJFue+++9K1a9e0bds25557bk444YTsvffe+dvf/paVK1f+09fo2bNnTjjhhFx11VWbNzwAAC2axR9gMxk4cGDWrVuXQYMGpbGxMWeeeWYOPPDA7Lvvvtl1113zzDPP5Ec/+tE7XhAMHTo0J5xwQn73u9/l05/+dEqlUpqamtLU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lX4AAIAyYfFv5RobG3PyySdnzpw5+fa3v50vfOELRUcCAABgI1L8W7F77rknn//857Prrrtm0aJF6dSpU9GRAAAA2Mic+rdCTU1NGT9+fGpqajJ69Og8+OCDSj8AAECZsvi3MkuXLs2wYcOyYcOGzJgxIz179iw6EgAAAJuQxb+VKJVKueCCC3LEEUfkkEMOSX19vdIPAADQClj8W4Enn3wyVVVVeeaZZzJ58uQMHDiw6EgAAABsJhb/Mjdx4sT06tUru+++ex555BGlHwAAoJWx+Jepl156KcOGDcvixYtzxRVXZNSoUUVHAgAAoAAW/zL029/+Nl26dEljY2OWLVum9AMAALRiin8ZWb9+fU4++eSMHTs2Z555Zh544IHsvvvuRccCAACgQE79y8T8+fNz8sknZ7vttsvs2bPTpUuXoiMBAADQDFj8W7hSqZRzzjknxx13XI4//vgsXbpU6QcAAOANFv8W7PHHH09VVVVefvnl/Pa3v80hhxxSdCQAAACaGYt/C3XllVfmgAMOyL//+7+noaFB6QcAAOCfsvi3MM8991xqamry6KOPZuLEiRk8eHDRkQAAAGjGLP4tyOTJk9O9e/dsscUWqaurU/oBAAD4lyz+LcArr7yS0aNH5/7778+3vvWtnHnmmUVHAgAAoIVQ/Ju5+++/P2PGjMkuu+ySBQsWpHPnzkVHAgAAoAVx6t9MNTU15fTTT09lZWWGDh2ahQsXKv0AAAC8Zxb/Zqiuri5DhgzJ66+/nunTp6d3795FRwIAAKCFarNhw4YNRYdozk444YS88MIL2XLLLdO2bdt88pOfzHHHHZeTTjopbdu2zQUXXJAOHTrktNNOe8v3btiwIbfccktuvfXW/OlPf8qHPvShfOITn8jgwYMzYMCANz33ggsuyJ133pnDDz88//3f/51Bgwbl2muvzaRJk3L99ddn6623zhZbbJFPfvKT+fKXv5zu3btnzpw5mTRpUlasWJGtt946hxxySL761a9m++2331y/HgAAAJo5p/7vwlVXXZXZs2fnjjvuyOjRo3PjjTfm29/+9r/8vssvvzw///nPc9ZZZ+W+++7LXXfdldNOOy3z5s170/NeffXVTJs2LY899liuvfba/PSnP82kSZOy1VZbJUkGDBiQBx54IDNmzEiPHj1yzjnnZMOGDWlsbMznP//53HXXXZkyZUqef/75XHXVVZviVwAAAEAL5dT/Pfjwhz+cfv36ZZdddsno0aMzYsSIt33uU089lSlTpuSGG27IZz7zmTe+3qNHj/To0eNNz/3a176WZcuWpUuXLunUqVOOO+64f/qaW265ZY4//vj89Kc/zcsvv5yjjz76jce23XbbfO5zn8vEiRM/2JsEAACgrFj834cuXbqkQ4cOWbp06ds+Z+HChfnYxz72ptL/j/74xz/mgAMOyLXXXpuKiorMmDEjf/7zn/PII4/80+evX78+t99+ez72sY+lXbt2b3l86dKlPgAQAACAN7H4v08f/ehHs2bNmrd9fPXq1dlll13e9LVjjz02a9euzfr163PxxRfnyiuvzIoVK/LpT386F154YXbeeefsv//+mTp1avbZZ583vu+ee+7JAw88kK222iqdO3fOFVdc8Zaft2DBgtxxxx258cYbN96bBAAAoMVT/N+n5557LjvuuOPbPr7TTjtl1apVb/ranXfemb/97W/p06dP7rvvvhx44IHZf//909DQkE9/+tNJkmOOOSbf//738+Uvfzlbbvl//+s56qij3vEzBerq6vKNb3wj3/3ud7PnnntuhHcHAABAuXDq/z4sX748zz///Fv+Vv/v9e7dO88991yWL1/+Tx8fO3Zsjj/++CxZsiQrV67MgAEDMmDAgHzve9/L6tWrM3fu3HeV5bHHHstXvvKV/J//83+y//77v5+3AwAAQBmz+L8Hr7zySpYsWZIrrrgixxxzTP7t3/4tSVIqlbJ+/fo3ntemTZt06tQpFRUV+frXv57zzz8/PXr0yFZbbZWHH344yf/9ML7GxsY888wz+fnPf56PfOQjb3z/97///UydOjWHHnroO+ZZsWJFzjzzzJxzzjnp16/fJnjHAAAAtHSK/7vw/87u27Rpk09+8pMZPnx4Bg8e/MbjN9xwQ2644YY3/vO+++6b66+/Puedd15+8Ytf5Hvf+17+9Kc/ZYcddkinTp1y6aWXZtddd80NN9yQ/v37v/EPCP/P0KFDM27cuHf8DIEkuemmm/LSSy/l29/+9ht/CrDbbrvll7/85cZ78wAAALRobTZs2LCh6BAAAADApuFv/AEAAKCMKf4AAABQxhR/AAAAKGOKPwAAAJQxxR8AAADKmOIPAAAAZUzxBwAAgDKm+AMAAEAZU/wBAACgjCn+AAAAUMYUfwAAAChjij8AAACUMcUfAAAAypjiDwAAAGVM8QcAAIAypvgDAABAGVP8AQAAoIwp/gAAAFDGFH8AAAAoY4o/AAAAlDHFHwAAAMqY4g8AAABlTPEHAACAMqb4AwAAQBlT/AEAAKCMKf4AAABQxhR/AAAAKGOKPwAAAJQxxR8AAADKmOIPAAAAZUzxBwAAgDKm+AMAAEAZU/wBAACgjCn+AAAAUMYUfwAAAChjij8AAACUMcUfAAAAypjiDwAAAGVM8QcAAIAypvgDAABAGVP8AQAAoIwp/gAAAFDGFH8AAAAoY4o/AAAAlDHFHwAAAMqY4g8AAABlTPEHAACAMqb4AwAAQBlT/AEAAKCMKf4AAABQxhR/AAAAKGOKPwAAAJQxxR8AAADKmOIPAAAAZUzxBwAAgDKm+AMAAEAZU/wBAACgjCn+AAAAUMYUfwAAAChjij8AAACUMcUfAAAAypjiDwAAAGVM8QcAAIAypvgDAABAGVP8AQAAoIz9/5efQBImxCmVAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1008x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(14, 10))\n",
    "M = nx.subgraph(G, all_components[8])\n",
    "nx.draw(M, with_labels=True, node_color='gray', alpha=.8, node_size=1, font_size=12, arrowsize=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Are the SCCs Enriched with Essential Genes?"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(56.73557692307692, 1.0, 88.13831134957896, 2.0)"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pred['Pred_Cancer_Gene'] = False\n",
    "#pred.loc[pred.Prob_pos >= 0.89, 'Pred_Cancer_Gene'] = True\n",
    "#pred.loc[pred.Prob_pos >= 0.802, 'Pred_Cancer_Gene'] = True\n",
    "\n",
    "# get essentiality from Achilles data\n",
    "essential_genes = pd.read_csv(achilles_data_path).T\n",
    "essential_genes.columns = essential_genes.loc['Unnamed: 0']\n",
    "essential_genes.drop('Unnamed: 0', inplace=True)\n",
    "essential_genes['Name'] = [i.split('(')[0].strip() for i in essential_genes.index]\n",
    "essential_genes.set_index('Name', inplace=True)\n",
    "essentiality = (essential_genes < -0.5).sum(axis=1)\n",
    "\n",
    "# join essentiality with the predictions\n",
    "pred = pred.join(essentiality.rename('essentiality'), on='Name', how='left')\n",
    "pred.essentiality.fillna(0, inplace=True)\n",
    "pred.essentiality = pred.essentiality.astype('int32')\n",
    "\n",
    "# get all genes somewhere in the 10 largest SCCs\n",
    "all_genes_in_sccs = []\n",
    "for i in range(len(all_components_larger5)):\n",
    "    all_genes_in_sccs += all_components[i]\n",
    "\n",
    "l1 = pred[pred.Name.isin(all_genes_in_sccs)].essentiality\n",
    "l2 = pred[~pred.Name.isin(all_genes_in_sccs)].essentiality\n",
    "_ = plt.boxplot([l1, l2], showfliers=False, labels=['Genes in SCCs', 'Other Genes'])\n",
    "_ = plt.xticks([1,2], ['Genes in SCCs', 'Other Genes'], fontsize=15)\n",
    "plt.ylabel('# of tumor cell lines\\nin which the gene is essential', fontsize=16)\n",
    "l1.mean(), l1.median(), l2.mean(), l2.median()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Average Essentiality')"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "essentiality_for_sccs = []\n",
    "essentiality_err = []\n",
    "for i in range(len(all_components_larger5)):\n",
    "    mean_ess = pred[pred.Name.isin(all_components[i])].essentiality\n",
    "    essentiality_for_sccs.append(mean_ess)\n",
    "    essentiality_err.append(mean_ess.std())\n",
    "fig = plt.figure(figsize=(8, 5))\n",
    "_ = plt.boxplot(essentiality_for_sccs, showfliers=False)\n",
    "_ = plt.xticks(ticks=np.arange(1, len(all_components_larger5)+1), labels=['SCC {}'.format(j+1) for j in range(len(all_components_larger5))], fontsize=15, rotation=90)\n",
    "plt.ylabel('Average Essentiality', fontsize=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3764"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred.Pred_Cancer_Gene.sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ips = [i for i in C_abs.out_edges('CCNB1', data=True)]\n",
    "[i for i in ips if i[2]['weight'] > .8]#i[1].startswith('CC')]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Add Database Knowledge to SCCs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>label</th>\n",
       "      <th>Num_Pos</th>\n",
       "      <th>Prob_pos</th>\n",
       "      <th>Std_Pred</th>\n",
       "      <th>NCG_Known_Cancer_Gene</th>\n",
       "      <th>NCG_Candidate_Cancer_Gene</th>\n",
       "      <th>OncoKB_Cancer_Gene</th>\n",
       "      <th>Bailey_et_al_Cancer_Gene</th>\n",
       "      <th>ONGene_Oncogene</th>\n",
       "      <th>Pred_Cancer_Gene</th>\n",
       "      <th>essentiality</th>\n",
       "      <th>DatabaseKnowledge</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ENSG00000100393</th>\n",
       "      <td>EP300</td>\n",
       "      <td>True</td>\n",
       "      <td>10</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>266</td>\n",
       "      <td>CGC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000133703</th>\n",
       "      <td>KRAS</td>\n",
       "      <td>True</td>\n",
       "      <td>10</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>247</td>\n",
       "      <td>CGC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000155657</th>\n",
       "      <td>TTN</td>\n",
       "      <td>False</td>\n",
       "      <td>10</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>8</td>\n",
       "      <td>DriverDB</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000284792</th>\n",
       "      <td>PTEN</td>\n",
       "      <td>True</td>\n",
       "      <td>10</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>2</td>\n",
       "      <td>CGC</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000039068</th>\n",
       "      <td>CDH1</td>\n",
       "      <td>True</td>\n",
       "      <td>10</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>True</td>\n",
       "      <td>34</td>\n",
       "      <td>CGC</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                  Name  label  Num_Pos  Prob_pos  Std_Pred  \\\n",
       "ID                                                           \n",
       "ENSG00000100393  EP300   True       10     1.000     0.000   \n",
       "ENSG00000133703   KRAS   True       10     1.000     0.000   \n",
       "ENSG00000155657    TTN  False       10     1.000     0.000   \n",
       "ENSG00000284792   PTEN   True       10     1.000     0.000   \n",
       "ENSG00000039068   CDH1   True       10     1.000     0.000   \n",
       "\n",
       "                 NCG_Known_Cancer_Gene  NCG_Candidate_Cancer_Gene  \\\n",
       "ID                                                                  \n",
       "ENSG00000100393                   True                      False   \n",
       "ENSG00000133703                   True                      False   \n",
       "ENSG00000155657                  False                       True   \n",
       "ENSG00000284792                   True                      False   \n",
       "ENSG00000039068                   True                      False   \n",
       "\n",
       "                 OncoKB_Cancer_Gene  Bailey_et_al_Cancer_Gene  \\\n",
       "ID                                                              \n",
       "ENSG00000100393                True                      True   \n",
       "ENSG00000133703                True                      True   \n",
       "ENSG00000155657               False                     False   \n",
       "ENSG00000284792                True                      True   \n",
       "ENSG00000039068                True                      True   \n",
       "\n",
       "                 ONGene_Oncogene  Pred_Cancer_Gene  essentiality  \\\n",
       "ID                                                                 \n",
       "ENSG00000100393            False              True           266   \n",
       "ENSG00000133703             True              True           247   \n",
       "ENSG00000155657            False              True             8   \n",
       "ENSG00000284792            False              True             2   \n",
       "ENSG00000039068             True              True            34   \n",
       "\n",
       "                DatabaseKnowledge  \n",
       "ID                                 \n",
       "ENSG00000100393               CGC  \n",
       "ENSG00000133703               CGC  \n",
       "ENSG00000155657          DriverDB  \n",
       "ENSG00000284792               CGC  \n",
       "ENSG00000039068               CGC  "
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the NCG cancer genes\n",
    "known_cancer_genes = []\n",
    "candidate_cancer_genes = []\n",
    "n = 0\n",
    "with open(ncg_cancer_genes_path, 'r') as f:\n",
    "    for line in f.readlines():\n",
    "        n += 1\n",
    "        if n == 1:\n",
    "            continue\n",
    "        l = line.strip().split('\\t')\n",
    "        if len(l) == 2:\n",
    "            known_cancer_genes.append(l[0])\n",
    "            candidate_cancer_genes.append(l[1])\n",
    "        else:\n",
    "            candidate_cancer_genes.append(l[0])\n",
    "\n",
    "oncokb_genes = pd.read_csv(oncokb_path, sep='\\t')\n",
    "# remove low confidence genes\n",
    "oncokb_no_ncg_highconf = oncokb_genes[oncokb_genes['# of occurrence within resources (Column D-J)'] >= 3]\n",
    "\n",
    "# comprehensive characterization paper genes\n",
    "cancer_genes_paper = pd.read_csv(baileyetal_path, sep='\\t', header=3)\n",
    "cancer_genes_paper = pd.Series(cancer_genes_paper.Gene.unique())\n",
    "\n",
    "# driverDB\n",
    "driverdb_genes = []\n",
    "thresholds_study = {'mutation': 25, 'CNV': 5, 'methylation': 2}\n",
    "for evidence in ['mutation', 'CNV', 'methylation']:\n",
    "    driverdb_data = pd.read_csv(driverdb_path.format(evidence), sep='\\t')\n",
    "    all_driver_genes = []\n",
    "    for index, row in driverdb_data.iterrows():\n",
    "        all_driver_genes += [i.strip() for i in row.driver_gene.split(',') if not i.strip() == '']\n",
    "    study_counts = pd.Series(all_driver_genes).value_counts()\n",
    "    driverdb_genes += list(study_counts[study_counts > thresholds_study[evidence]].index)\n",
    "driverdb_genes = pd.Series(list(set(driverdb_genes)))\n",
    "\n",
    "# OnGene + TSGene\n",
    "oncogenes = pd.read_csv(ongene_path, sep='\\t')\n",
    "tsgs = pd.read_csv(tsgene_path, sep='\\t')\n",
    "cancer_genes = list(set(list(oncogenes.OncogeneName) + list(tsgs.GeneSymbol)))\n",
    "\n",
    "# COSMIC CGC\n",
    "cgc = pd.read_csv(cgc_path)\n",
    "cgc = list(set(cgc['Gene Symbol']))\n",
    "\n",
    "pred['DatabaseKnowledge'] = \"None\"\n",
    "pred.loc[pred.Name.isin(candidate_cancer_genes), 'DatabaseKnowledge'] = \"NCGCandidates\"\n",
    "pred.loc[pred.Name.isin(oncokb_genes['Hugo Symbol']), 'DatabaseKnowledge'] = \"OncoKB\"\n",
    "pred.loc[pred.Name.isin(driverdb_genes), 'DatabaseKnowledge'] = \"DriverDB\"\n",
    "pred.loc[pred.Name.isin(cancer_genes), 'DatabaseKnowledge'] = \"ONGeneTSGene\"\n",
    "pred.loc[pred.Name.isin(cancer_genes_paper), 'DatabaseKnowledge'] = \"Bailey\"\n",
    "pred.loc[pred.Name.isin(cgc), 'DatabaseKnowledge'] = \"CGC\"\n",
    "\"\"\"\n",
    "pred['CGC'] = False\n",
    "pred.loc[pred.Name.isin(cgc), 'CGC'] = True\n",
    "pred['Bailey'] = False\n",
    "pred.loc[pred.Name.isin(cancer_genes_paper), 'Bailey'] = True\n",
    "pred['NCGCandidates'] = False\n",
    "pred.loc[pred.Name.isin(candidate_cancer_genes), 'NCGCandidates'] = True\n",
    "pred['OncoKB'] = False\n",
    "pred.loc[pred.Name.isin(oncokb_genes['Hugo Symbol']), 'OncoKB'] = True\n",
    "pred['DriverDB'] = False\n",
    "pred.loc[pred.Name.isin(driverdb_genes), 'DriverDB'] = True\n",
    "pred['ONGene_TSGene'] = False\n",
    "pred.loc[pred.Name.isin(cancer_genes), 'ONGene_TSGene'] = True\n",
    "\"\"\"\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['Prob_pos'].to_dict(), name='OutputProb')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['Pred_Cancer_Gene'].to_dict(), name='PredictedCancerGene')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['essentiality'].to_dict(), name='Essentiality')\n",
    "nx.set_node_attributes(G=G, values=pred.set_index('Name')['DatabaseKnowledge'].to_dict(), name='DatabaseKnowledge')\n",
    "\n",
    "pred.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "80 149\n",
      "15 16\n",
      "5 9\n",
      "3 8\n",
      "4 6\n",
      "0 5\n",
      "0 5\n",
      "3 5\n",
      "3 5\n"
     ]
    }
   ],
   "source": [
    "for i in range(len(all_components_larger5)):\n",
    "    print (pred[pred.Name.isin(all_components_larger5[i])].Pred_Cancer_Gene.sum(), len(all_components_larger5[i]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "All SCCs (> 2) contain 323 genes in total\n",
      "The first 9 SCCs (>=5) contain 208 genes in total\n"
     ]
    }
   ],
   "source": [
    "all_components_larger2 = [i for i in all_components if len(i) > 2]\n",
    "flat_list = [gene for scc in all_components_larger2 for gene in scc]\n",
    "print (\"All SCCs (> 2) contain {} genes in total\".format(len(set(flat_list))))\n",
    "print (\"The first {} SCCs (>=5) contain {} genes in total\".format(len(all_components_larger5), len(set(all_genes_in_sccs))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.0495495495495497"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.array([len(i) for i in all_components]).mean()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Write SCCs to Disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "d_name = 'thr_{}_noneg'.format(min_edge_weight)\n",
    "d_name = d_name.replace('.', '')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_1_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_2_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_3_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_4_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_5_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_6_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_7_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_8_thr_0.14.gml\n",
      "Graph written to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/lrp_neighbors_new_comp_9_thr_0.14.gml\n"
     ]
    }
   ],
   "source": [
    "if not os.path.isdir(os.path.join(model_dir, 'SCCs', d_name)):\n",
    "    os.mkdir(os.path.join(model_dir, 'SCCs', d_name))\n",
    "\n",
    "node_names_df = pd.DataFrame(node_names, columns=['ID', 'Name']).set_index('ID')\n",
    "for i in range(len(all_components_larger5)):\n",
    "    fname = os.path.join(model_dir, 'SCCs', d_name,\n",
    "                         'lrp_neighbors_new_comp_{}_thr_{}.gml'.format(i+1, min_edge_weight))\n",
    "    comp = all_components[i]\n",
    "    nx.write_gml(G.subgraph(comp), path=fname)\n",
    "    fname_nodes = os.path.join(model_dir, 'SCCs', d_name, 'lrp_neighbors_new_comp_{}_thr_{}_nodes.csv'.format(i+1, min_edge_weight))\n",
    "    nodes[nodes.Name.isin(comp)].to_csv(fname_nodes, sep='\\t')\n",
    "    print (\"Graph written to: {}\".format(fname))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Which Omics Levels are Important in SCCs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# group the feature contributions by omics level\n",
    "contrib_df_copy = feat_contrib_df.copy()\n",
    "contrib_df_copy[contrib_df_copy < 0] = 0\n",
    "contrib_df_copy.loc['Omics_Type', :] = [i[0] for i in feat_contrib_df.columns.str.split(':')]\n",
    "omics_contributions = contrib_df_copy.T.groupby('Omics_Type').sum().T\n",
    "\n",
    "# turn that into probabilities\n",
    "def minmax(x):\n",
    "    return x / x.sum(axis=0)\n",
    "omics_contributions_probs = omics_contributions.apply(minmax, axis=1)\n",
    "\n",
    "#compute a stacked barplot from that\n",
    "stacked_barplot_vals = {}\n",
    "groups = list(range(len(all_components_larger5)))\n",
    "for omics in ['MF', 'CNA', 'METH', 'GE']:\n",
    "    omics_vals = []\n",
    "    for scc in all_components_larger5:\n",
    "        omics_vals.append(omics_contributions_probs.loc[omics_contributions_probs.index.isin(scc), omics].mean())\n",
    "    stacked_barplot_vals[omics] = omics_vals\n",
    "\n",
    "df = pd.DataFrame(stacked_barplot_vals)\n",
    "totals = [i+j+k+l for i,j,k,l in zip(df['MF'], df['CNA'], df['METH'], df['GE'])]\n",
    "mutation_bars = [i / j * 100 for i,j in zip(df['MF'], totals)]\n",
    "cna_bars = [i / j * 100 for i,j in zip(df['CNA'], totals)]\n",
    "methylation_bars = [i / j * 100 for i,j in zip(df['METH'], totals)]\n",
    "expression_bars = [i / j * 100 for i,j in zip(df['GE'], totals)]\n",
    "\n",
    "fig = plt.figure(figsize=(10, 8))\n",
    "plt.bar(groups, mutation_bars, color='darkred', label='Mutation Frequency')\n",
    "plt.bar(groups, cna_bars, bottom=mutation_bars, color='purple', label='Copy Number Changes')\n",
    "plt.bar(groups, methylation_bars, bottom=[i+j for i,j in zip(mutation_bars, cna_bars)],\n",
    "                                          color='darkblue', label='DNA Methylation')\n",
    "plt.bar(groups, expression_bars, bottom=[i+j+k for i,j,k in zip(mutation_bars, cna_bars, methylation_bars)],\n",
    "        color='darkgreen', label='Gene Expression')\n",
    "\n",
    "plt.legend(loc='upper left', ncol=1, fontsize=20)\n",
    "plt.ylabel('Percent Feature Contribution', fontsize=20)\n",
    "_ = plt.xticks(groups, ['SCC {}'.format(i+1) for i in range(len(all_components_larger5))], fontsize=15, rotation=90)\n",
    "plt.gca().tick_params(axis='both', which='major', labelsize=20)\n",
    "fig.savefig(os.path.join(model_dir, 'SCCs', d_name, 'omics_contributions_sccs.svg'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Which Features are Most Altered in Each SCC\n",
    "This can also be used to compute the feature contribution averages per SCC and determine if any of the SCCs is specific for a tissue or cancer type."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "lrp_I = pd.DataFrame(lrp_neighbor_matrix, index=node_names[:, 1], columns=node_names[:, 1])\n",
    "feat_importance_sccs = []\n",
    "for i in range(len(all_components)):\n",
    "    v = feat_contrib_df[feat_contrib_df.index.isin(all_components[i])].sum(axis=1).mean()\n",
    "    feat_importance_sccs.append(v)\n",
    "_ = plt.hist(feat_importance_sccs, bins=np.linspace(-10, 10, 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Input Omics Features for the Modules"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x1512 with 9 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "features_df = pd.DataFrame(features, index=node_names[:, 1], columns=feature_names)\n",
    "\n",
    "n_to_plot = len(all_components_larger5)\n",
    "feat_contrib_capped = feat_contrib_df.copy()\n",
    "feat_contrib_capped[feat_contrib_capped < 0] = 0\n",
    "fig = plt.figure(figsize=(12, n_to_plot*2+3), frameon=False)\n",
    "outer_grid = gridspec.GridSpec(nrows=n_to_plot, ncols=1, figure=fig)\n",
    "\n",
    "for scc_no in range(n_to_plot):\n",
    "    # compute the representative for that SCC\n",
    "    #representative = feat_contrib_capped[feat_contrib_capped.index.isin(all_components[scc_no])]\n",
    "    representative = features_df[features_df.index.isin(all_components[scc_no])]\n",
    "    # plot barplot for representative\n",
    "    #utils.lrp_heatmap_plot(fig, outer_grid[scc_no], representative.mean(axis=0).values,\n",
    "    #                    title='SCC {0} (#Genes: {1})'.format(scc_no+1, representative.shape[0]),\n",
    "    #                    xlabels=representative.columns\n",
    "    #        )\n",
    "    utils.lrp_barplot(fig, outer_grid[scc_no], representative.mean(axis=0).values,\n",
    "                      title='SCC {0} (#Genes: {1})'.format(scc_no+1, representative.shape[0]),\n",
    "                      xlabels=representative.columns\n",
    "                     )\n",
    "fig.tight_layout()\n",
    "fig.savefig(os.path.join(model_dir, 'SCCs', d_name, 'representatives_sccs_input_bars.pdf'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Are Some SCCs Enriched With Cancer Genes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, '# of Known Cancer Genes')"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sum_known_comp = []\n",
    "for i in range(len(all_components_larger5)):\n",
    "    comp_stats = pred[pred.Name.isin(all_components[i])].label\n",
    "    sum_known_comp.append(comp_stats.mean())\n",
    "\n",
    "plt.bar(x=np.arange(len(all_components_larger5)), height=sum_known_comp)\n",
    "_ = plt.xticks(ticks=np.arange(len(all_components_larger5)), labels=['SCC {}'.format(j+1) for j in range(len(all_components_larger5))], fontsize=10, rotation=90)\n",
    "plt.ylabel('# of Known Cancer Genes')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Name</th>\n",
       "      <th>label</th>\n",
       "      <th>Num_Pos</th>\n",
       "      <th>Prob_pos</th>\n",
       "      <th>Std_Pred</th>\n",
       "      <th>NCG_Known_Cancer_Gene</th>\n",
       "      <th>NCG_Candidate_Cancer_Gene</th>\n",
       "      <th>OncoKB_Cancer_Gene</th>\n",
       "      <th>Bailey_et_al_Cancer_Gene</th>\n",
       "      <th>ONGene_Oncogene</th>\n",
       "      <th>Pred_Cancer_Gene</th>\n",
       "      <th>essentiality</th>\n",
       "      <th>DatabaseKnowledge</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ID</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>ENSG00000152467</th>\n",
       "      <td>ZSCAN1</td>\n",
       "      <td>False</td>\n",
       "      <td>10</td>\n",
       "      <td>0.964</td>\n",
       "      <td>0.026</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>0</td>\n",
       "      <td>DriverDB</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000215421</th>\n",
       "      <td>ZNF407</td>\n",
       "      <td>False</td>\n",
       "      <td>10</td>\n",
       "      <td>0.865</td>\n",
       "      <td>0.141</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>563</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ENSG00000165583</th>\n",
       "      <td>SSX5</td>\n",
       "      <td>False</td>\n",
       "      <td>0</td>\n",
       "      <td>0.265</td>\n",
       "      <td>0.132</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>5</td>\n",
       "      <td>None</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                   Name  label  Num_Pos  Prob_pos  Std_Pred  \\\n",
       "ID                                                            \n",
       "ENSG00000152467  ZSCAN1  False       10     0.964     0.026   \n",
       "ENSG00000215421  ZNF407  False       10     0.865     0.141   \n",
       "ENSG00000165583    SSX5  False        0     0.265     0.132   \n",
       "\n",
       "                 NCG_Known_Cancer_Gene  NCG_Candidate_Cancer_Gene  \\\n",
       "ID                                                                  \n",
       "ENSG00000152467                  False                      False   \n",
       "ENSG00000215421                  False                      False   \n",
       "ENSG00000165583                  False                      False   \n",
       "\n",
       "                 OncoKB_Cancer_Gene  Bailey_et_al_Cancer_Gene  \\\n",
       "ID                                                              \n",
       "ENSG00000152467               False                     False   \n",
       "ENSG00000215421               False                     False   \n",
       "ENSG00000165583               False                     False   \n",
       "\n",
       "                 ONGene_Oncogene  Pred_Cancer_Gene  essentiality  \\\n",
       "ID                                                                 \n",
       "ENSG00000152467            False              True             0   \n",
       "ENSG00000215421            False              True           563   \n",
       "ENSG00000165583            False             False             5   \n",
       "\n",
       "                DatabaseKnowledge  \n",
       "ID                                 \n",
       "ENSG00000152467          DriverDB  \n",
       "ENSG00000215421              None  \n",
       "ENSG00000165583              None  "
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pred[pred.Name.isin(all_components[21])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "9"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(all_components_larger5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Run Pathway/Enrichment Analyses for SCCs"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### KEGG Pathway Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "1\n",
      "2\n",
      "3\n",
      "4\n",
      "5\n",
      "6\n",
      "7\n",
      "8\n"
     ]
    }
   ],
   "source": [
    "pathway_sccs = []\n",
    "for i in range(len(all_components_larger5)):\n",
    "    print (i)\n",
    "    pathway_sccs.append(get_pathway_enrichment(nodes[nodes.Name.isin(all_components[i])], nodes, i, model_dir))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Moved pathway analysis to: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg\n"
     ]
    }
   ],
   "source": [
    "import shutil\n",
    "for i in range(len(all_components_larger5)):\n",
    "    shutil.move(os.path.join(model_dir, 'cluster_{}_pathways.txt'.format(i)),\n",
    "                os.path.join(model_dir, 'SCCs', d_name, 'SCC_{}_pathways_withgenes.txt'.format(i+1)))\n",
    "print (\"Moved pathway analysis to: {}\".format(os.path.join(model_dir, 'SCCs', d_name)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### GO Enrichment Analysis"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  EXISTS: go-basic.obo\n",
      "  EXISTS: gene2go\n",
      "go-basic.obo: fmt(1.2) rel(2020-07-16) 47,259 GO Terms\n",
      "HMS:0:00:06.730617 338,121 annotations READ: gene2go \n",
      "1 taxids stored: 9606\n",
      "BP 18,597 annotated human genes\n",
      "CC 19,414 annotated human genes\n",
      "MF 18,162 annotated human genes\n",
      "\n",
      "Load BP Gene Ontology Analysis ...\n",
      "fisher module not installed.  Falling back on scipy.stats.fisher_exact\n",
      " 81% 16,864 of 20,913 population items found in association\n",
      "\n",
      "Load CC Gene Ontology Analysis ...\n",
      "fisher module not installed.  Falling back on scipy.stats.fisher_exact\n",
      " 85% 17,853 of 20,913 population items found in association\n",
      "\n",
      "Load MF Gene Ontology Analysis ...\n",
      "fisher module not installed.  Falling back on scipy.stats.fisher_exact\n",
      " 83% 17,359 of 20,913 population items found in association\n"
     ]
    }
   ],
   "source": [
    "# Get the data\n",
    "obo_fname = download_go_basic_obo()\n",
    "fin_gene2go = download_ncbi_associations()\n",
    "obodag = GODag(\"go-basic.obo\")\n",
    "\n",
    "# Read NCBI's gene2go. Store annotations in a list of namedtuples\n",
    "objanno = Gene2GoReader(fin_gene2go, taxids=[9606])\n",
    "\n",
    "# Get namespace2association where:\n",
    "#    namespace is:\n",
    "#        BP: biological_process               \n",
    "#        MF: molecular_function\n",
    "#        CC: cellular_component\n",
    "#    assocation is a dict:\n",
    "#        key: NCBI GeneID\n",
    "#        value: A set of GO IDs associated with that gene\n",
    "ns2assoc = objanno.get_ns2assc()\n",
    "\n",
    "for nspc, id2gos in ns2assoc.items():\n",
    "    print(\"{NS} {N:,} annotated human genes\".format(NS=nspc, N=len(id2gos)))\n",
    "\n",
    "goeaobj = GOEnrichmentStudyNS(\n",
    "        GeneID2nt_human.keys(), # List of human protein-coding genes\n",
    "        ns2assoc, # geneid/GO associations\n",
    "        obodag, # Ontologies\n",
    "        propagate_counts = False,\n",
    "        alpha = 0.01, # default significance cut-off\n",
    "        methods = ['fdr_bh']) # defult multipletest correction method"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "querying 1-149...done.\n",
      "Finished.\n",
      "1 input query terms found dup hits:\n",
      "\t[('IGKV3-20', 3)]\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 149 IDs ...\n",
      " 98%    145 of    148 study items found in association\n",
      " 99%    148 of    149 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "   1,660 GO terms are associated with    145 of    149 study items\n",
      "  METHOD fdr_bh:\n",
      "      18 GO terms found significant (< 0.01=alpha) ( 18 enriched +   0 purified): statsmodels fdr_bh\n",
      "      65 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 149 IDs ...\n",
      "100%    148 of    148 study items found in association\n",
      " 99%    148 of    149 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "     321 GO terms are associated with    148 of    149 study items\n",
      "  METHOD fdr_bh:\n",
      "      30 GO terms found significant (< 0.01=alpha) ( 30 enriched +   0 purified): statsmodels fdr_bh\n",
      "     134 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 149 IDs ...\n",
      " 99%    146 of    148 study items found in association\n",
      " 99%    148 of    149 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "     368 GO terms are associated with    146 of    149 study items\n",
      "  METHOD fdr_bh:\n",
      "      14 GO terms found significant (< 0.01=alpha) ( 14 enriched +   0 purified): statsmodels fdr_bh\n",
      "     129 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "    109 items WROTE: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_1_goenrichment_0.01.xlsx\n",
      "querying 1-16...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 16 IDs ...\n",
      "100%     16 of     16 study items found in association\n",
      "100%     16 of     16 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "     262 GO terms are associated with     16 of     16 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 16 IDs ...\n",
      "100%     16 of     16 study items found in association\n",
      "100%     16 of     16 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      68 GO terms are associated with     16 of     16 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 16 IDs ...\n",
      " 94%     15 of     16 study items found in association\n",
      "100%     16 of     16 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      89 GO terms are associated with     15 of     16 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "      0 items. NOT WRITING ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_2_goenrichment_0.01.xlsx\n",
      "querying 1-9...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 9 IDs ...\n",
      "100%      9 of      9 study items found in association\n",
      "100%      9 of      9 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "      85 GO terms are associated with      9 of      9 study items\n",
      "  METHOD fdr_bh:\n",
      "      10 GO terms found significant (< 0.01=alpha) ( 10 enriched +   0 purified): statsmodels fdr_bh\n",
      "       6 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 9 IDs ...\n",
      "100%      9 of      9 study items found in association\n",
      "100%      9 of      9 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      36 GO terms are associated with      9 of      9 study items\n",
      "  METHOD fdr_bh:\n",
      "       5 GO terms found significant (< 0.01=alpha) (  5 enriched +   0 purified): statsmodels fdr_bh\n",
      "       7 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 9 IDs ...\n",
      "100%      9 of      9 study items found in association\n",
      "100%      9 of      9 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      14 GO terms are associated with      9 of      9 study items\n",
      "  METHOD fdr_bh:\n",
      "       1 GO terms found significant (< 0.01=alpha) (  1 enriched +   0 purified): statsmodels fdr_bh\n",
      "       4 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "     22 items WROTE: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_3_goenrichment_0.01.xlsx\n",
      "querying 1-8...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 8 IDs ...\n",
      "100%      8 of      8 study items found in association\n",
      "100%      8 of      8 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "      49 GO terms are associated with      8 of      8 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 8 IDs ...\n",
      "100%      8 of      8 study items found in association\n",
      "100%      8 of      8 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      29 GO terms are associated with      8 of      8 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 8 IDs ...\n",
      "100%      8 of      8 study items found in association\n",
      "100%      8 of      8 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      28 GO terms are associated with      8 of      8 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "      0 items. NOT WRITING ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_4_goenrichment_0.01.xlsx\n",
      "querying 1-6...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 6 IDs ...\n",
      "100%      6 of      6 study items found in association\n",
      "100%      6 of      6 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "      84 GO terms are associated with      6 of      6 study items\n",
      "  METHOD fdr_bh:\n",
      "       1 GO terms found significant (< 0.01=alpha) (  1 enriched +   0 purified): statsmodels fdr_bh\n",
      "       2 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 6 IDs ...\n",
      "100%      6 of      6 study items found in association\n",
      "100%      6 of      6 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      42 GO terms are associated with      6 of      6 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 6 IDs ...\n",
      "100%      6 of      6 study items found in association\n",
      "100%      6 of      6 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      23 GO terms are associated with      6 of      6 study items\n",
      "  METHOD fdr_bh:\n",
      "       1 GO terms found significant (< 0.01=alpha) (  1 enriched +   0 purified): statsmodels fdr_bh\n",
      "       2 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "      3 items WROTE: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_5_goenrichment_0.01.xlsx\n",
      "querying 1-5...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "      43 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       2 GO terms found significant (< 0.01=alpha) (  2 enriched +   0 purified): statsmodels fdr_bh\n",
      "       5 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      29 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      17 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       5 GO terms found significant (< 0.01=alpha) (  5 enriched +   0 purified): statsmodels fdr_bh\n",
      "       5 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "      9 items WROTE: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_6_goenrichment_0.01.xlsx\n",
      "querying 1-5...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "      49 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      45 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      23 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       1 GO terms found significant (< 0.01=alpha) (  1 enriched +   0 purified): statsmodels fdr_bh\n",
      "       2 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "      5 items WROTE: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_7_goenrichment_0.01.xlsx\n",
      "querying 1-5...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "      62 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      22 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       1 GO terms found significant (< 0.01=alpha) (  1 enriched +   0 purified): statsmodels fdr_bh\n",
      "       3 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      26 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "      1 items WROTE: ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_8_goenrichment_0.01.xlsx\n",
      "querying 1-5...done.\n",
      "Finished.\n",
      "\n",
      "Run BP Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 12,274 uncorrected p-values using fisher_scipy_stats\n",
      "  12,274 GO terms are associated with 16,864 of 20,913 population items\n",
      "      82 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run CC Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 1,754 uncorrected p-values using fisher_scipy_stats\n",
      "   1,754 GO terms are associated with 17,853 of 20,913 population items\n",
      "      31 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "\n",
      "Run MF Gene Ontology Analysis: current study set of 5 IDs ...\n",
      "100%      5 of      5 study items found in association\n",
      "100%      5 of      5 study items found in population(20913)\n",
      "Calculating 4,239 uncorrected p-values using fisher_scipy_stats\n",
      "   4,239 GO terms are associated with 17,359 of 20,913 population items\n",
      "      18 GO terms are associated with      5 of      5 study items\n",
      "  METHOD fdr_bh:\n",
      "       0 GO terms found significant (< 0.01=alpha) (  0 enriched +   0 purified): statsmodels fdr_bh\n",
      "       0 study items associated with significant GO IDs (enriched)\n",
      "       0 study items associated with significant GO IDs (purified)\n",
      "      0 items. NOT WRITING ../data/GCN/training/Rev1_CNA_separated_all_networks/CPDB/SCCs/thr_014_noneg/SCC_9_goenrichment_0.01.xlsx\n"
     ]
    }
   ],
   "source": [
    "for comp in range(len(all_components_larger5)):\n",
    "    geneids_study = [int(i) for i in list(ut.get_entrez_from_symbol(all_components[comp]).index) if not i is None]\n",
    "    goea_results_all = goeaobj.run_study(geneids_study)\n",
    "    goea_results_sig = [r for r in goea_results_all if r.p_fdr_bh < 0.05]\n",
    "    out_dir = os.path.join(model_dir, 'SCCs', d_name)\n",
    "    #plot_results(os.path.join(out_dir, 'SCC_{}_goenrichment.png'.format(comp+1)), goea_results_sig)\n",
    "    goeaobj.wr_xlsx(os.path.join(out_dir, 'SCC_{}_goenrichment_0.01.xlsx'.format(comp+1)), goea_results_sig)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## LRP Neighbor Contributions Introduce no New Interactions"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "ename": "AttributeError",
     "evalue": "module 'tensorflow' has no attribute 'get_default_session'",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-11-2198281e7108>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mimport\u001b[0m \u001b[0mlrp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m/project/gcn/diseasegcn/EMOGI/lrp.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     13\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     14\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mmultiprocessing\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mProcess\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 15\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mdeepexplain\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtensorflow\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDeepExplain\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     16\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0memogi\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mEMOGI\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     17\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0margparse\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/src/deepexplain/deepexplain/tensorflow/__init__.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0;34m.\u001b[0m\u001b[0mmethods\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mDeepExplain\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/src/deepexplain/deepexplain/tensorflow/methods.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m    555\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    556\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 557\u001b[0;31m \u001b[0;32mclass\u001b[0m \u001b[0mDeepExplain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    558\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    559\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_default_session\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/src/deepexplain/deepexplain/tensorflow/methods.py\u001b[0m in \u001b[0;36mDeepExplain\u001b[0;34m()\u001b[0m\n\u001b[1;32m    557\u001b[0m \u001b[0;32mclass\u001b[0m \u001b[0mDeepExplain\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobject\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    558\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 559\u001b[0;31m     \u001b[0;32mdef\u001b[0m \u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgraph\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0msession\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_default_session\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    560\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    561\u001b[0m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mAttributeError\u001b[0m: module 'tensorflow' has no attribute 'get_default_session'"
     ]
    }
   ],
   "source": [
    "import lrp"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'lrp' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-12-3f8666bdf794>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0minterpreter\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlrp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mLRP\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel_dir\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmodel_dir\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m: name 'lrp' is not defined"
     ]
    }
   ],
   "source": [
    "interpreter = lrp.LRP(model_dir=model_dir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "lrp_scores = interpreter.compute_lrp('APC')\n",
    "mean_feat, std_feat, mean_neighbors, std_neighbors = lrp_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "nn_contrib_s0 = pd.DataFrame(mean_neighbors[1], index=node_names[:, 1], columns=node_names[:, 1])\n",
    "G = nx.from_pandas_adjacency(nn_contrib_s0)\n",
    "A = nx.from_pandas_adjacency(pd.DataFrame(adjacency, index=node_names[:, 1], columns=node_names[:, 1]))\n",
    "G.remove_edges_from(G.selfloop_edges())\n",
    "G.number_of_edges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "gene_name = 'APC'\n",
    "contributers_tp53 = list(G.neighbors(gene_name))\n",
    "same = 0\n",
    "for neighbor in A.neighbors(gene_name):\n",
    "    if not neighbor in contributers_tp53:\n",
    "        print (neighbor)\n",
    "    else:\n",
    "        same += 1\n",
    "same"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "A.number_of_edges(), G.number_of_edges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "len(list(contrib_all.neighbors('APC')))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "def edge_exists(source, target):\n",
    "    if A.has_edge(source, target):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "count = 0\n",
    "for (u, v) in A.edges():\n",
    "    count += 1\n",
    "    if not contrib_all.has_edge(u, v):\n",
    "        print (u, v)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "A.number_of_edges(), G.number_of_edges(), contrib_all.number_of_edges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "A = nx.from_pandas_adjacency(pd.DataFrame(adjacency, index=node_names[:, 1], columns=node_names[:, 1]))\n",
    "len(list(A.neighbors('ZHX2')))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "feat_contrib_df[feat_contrib_df.sum(axis=1).abs() > 2.5].shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "fig = plt.figure(figsize=(14, 8))\n",
    "_= plt.hist(feat_contrib_df.sum(axis=1), bins=np.linspace(-10, 10, 100))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Betweenness & LRP Edge Weight Correlation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "edge_betweenness = nx.edge_betweenness(C_abs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Pearson Correlation: 0.07856634135213743\tP-value: 0.0\n"
     ]
    },
    {
     "ename": "NameError",
     "evalue": "name 'all_components' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-14-10a0b0b57b35>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m     41\u001b[0m \u001b[0medge_bet_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msort_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mby\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Betweenness'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhead\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m10\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     42\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_option\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'float_format'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'{:f}'\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 43\u001b[0;31m \u001b[0mtest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0medge_bet_df\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0medge_bet_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mSource\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_components\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m&\u001b[0m \u001b[0medge_bet_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTarget\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mall_components\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     44\u001b[0m \u001b[0mtest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtest\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mtest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mBetweenness\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0.00001\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     45\u001b[0m \u001b[0mtest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msort_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mby\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'Betweenness'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mascending\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'all_components' is not defined"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#edge_betweenness = nx.edge_betweenness(C_abs)\n",
    "\n",
    "sources = []\n",
    "targets = []\n",
    "betweenness = []\n",
    "for source, target in edge_betweenness:\n",
    "    sources.append(source)\n",
    "    targets.append(target)\n",
    "    betweenness.append(edge_betweenness[(source, target)])\n",
    "edge_bet_df = pd.DataFrame([sources, targets, betweenness]).T\n",
    "edge_bet_df.columns = ['Source', 'Target', 'Betweenness']\n",
    "edge_bet_df['Betweenness'] = edge_bet_df.Betweenness.astype('float')\n",
    "\n",
    "weights = []\n",
    "for index, row in edge_bet_df.iterrows():\n",
    "    edge_data = C_abs.get_edge_data(row.Source, row.Target)\n",
    "    if not edge_data is None:\n",
    "        weight = C_abs.get_edge_data(row.Source, row.Target)[0]['weight']\n",
    "    else:\n",
    "        weight = 0\n",
    "    weights.append(weight)\n",
    "edge_bet_df['weight'] = weights\n",
    "\n",
    "edge_bet_df_sub = edge_bet_df[edge_bet_df.weight != 0]\n",
    "\n",
    "fig = plt.figure(figsize=(8, 8))\n",
    "sns.kdeplot(edge_bet_df_sub.Betweenness.rank(ascending=False), edge_bet_df_sub.weight.rank(ascending=False), cmap='Reds',\n",
    "            shade=True, shade_lowest=False)\n",
    "#correlation = pred_with_interactions.Prob_pos.rank().corr(pred_with_interactions.Cancer_Gene_Interactions.rank())\n",
    "correlation, pvalue = scipy.stats.pearsonr(edge_bet_df_sub.Betweenness,\n",
    "                                           edge_bet_df_sub.weight\n",
    "                                          )\n",
    "print (\"Pearson Correlation: {}\\tP-value: {}\".format(correlation, pvalue))\n",
    "#plt.title('Correlation Output Probability & Cancer Gene Interactions(R = {0:.2f})'.format(correlation),\n",
    "#          fontsize=25)\n",
    "plt.xlabel('Edge Betweenness in CPDB PPI Network (Ranked)', fontsize=16)\n",
    "plt.ylabel('EMOGI Edge Weight (Ranked)', fontsize=16)\n",
    "plt.gca().tick_params(axis='both', labelsize=12)\n",
    "fig.savefig(os.path.join(model_dir, 'correlation_betweenness_lrp.svg'))\n",
    "\n",
    "edge_bet_df.sort_values(by='Betweenness').head(10)\n",
    "pd.set_option('float_format', '{:f}'.format)\n",
    "#test = edge_bet_df[edge_bet_df.Source.isin(all_components[0]) & edge_bet_df.Target.isin(all_components[0])]\n",
    "#test = test[test.Betweenness > 0.00001]\n",
    "#test.sort_values(by='Betweenness', ascending=False)\n",
    "#edge_bet_df.Betweenness.max()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Compare LRP contribution with old one"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loaded and added neighbor contributions with support 0\n",
      "Loaded and added neighbor contributions with support 1\n",
      "-78.10830990555824 72.98056168227582\n"
     ]
    }
   ],
   "source": [
    "model_dir_old = '../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/'\n",
    "lrp_neighbor_matrix_old = np.load(os.path.join(model_dir_old, 'lrp_sigmoid', 'support_0_mean_sum.npy'))\n",
    "count = 1\n",
    "for i in range(5):\n",
    "    p = os.path.join(model_dir_old, 'lrp_sigmoid', 'support_{}_mean_sum.npy'.format(i))\n",
    "    if os.path.isfile(p):\n",
    "        lrp_neighbor_matrix_old += np.load(p)\n",
    "        count += 1\n",
    "        print (\"Loaded and added neighbor contributions with support {}\".format(i))\n",
    "lrp_neighbor_matrix_old = lrp_neighbor_matrix_old / float(count)\n",
    "print (lrp_neighbor_matrix_old.min(), lrp_neighbor_matrix_old.max())\n",
    "\n",
    "lrp_neighbor_matrix_abs_old = lrp_neighbor_matrix_old.copy()\n",
    "#lrp_neighbor_matrix_abs = np.abs(lrp_neighbor_matrix_abs)\n",
    "lrp_neighbor_matrix_abs_old[lrp_neighbor_matrix_abs_old < 0] = 0\n",
    "\n",
    "args, _ = gcnIO.load_hyper_params(model_dir_old)\n",
    "with h5py.File(os.path.join(model_dir_old, args['data']), 'r') as f:\n",
    "    node_names_old = f['gene_names'][:]\n",
    "\n",
    "C_abs_old = nx.from_pandas_adjacency(pd.DataFrame(lrp_neighbor_matrix_abs_old, index=node_names_old[:, 1],\n",
    "                                              columns=node_names_old[:, 1]),\n",
    "                                 create_using=nx.MultiDiGraph)\n",
    "C_full_old = C_abs_old.copy()\n",
    "C_abs_old.remove_edges_from(list(nx.selfloop_edges(C_abs_old)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "edge_weights = nx.get_edge_attributes(C_abs_old,'weight')\n",
    "C_abs_old.remove_edges_from((e for e, w in edge_weights.items() if w <= 0.19))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(8069, 290435)"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nx.intersection(C_abs, C_abs_old).number_of_edges(), nx.symmetric_difference(C_abs, C_abs_old).number_of_edges()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true,
    "jupyter": {
     "outputs_hidden": true
    }
   },
   "outputs": [
    {
     "ename": "KeyboardInterrupt",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m                         Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-16-467aa073c62b>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mthr\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0marange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.41\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0.01\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m     \u001b[0medge_weights\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_edge_attributes\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mC_abs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m'weight'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m     \u001b[0mG\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mC_abs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      5\u001b[0m     \u001b[0mG\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mremove_edges_from\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mw\u001b[0m \u001b[0;32min\u001b[0m \u001b[0medge_weights\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mw\u001b[0m \u001b[0;34m<=\u001b[0m \u001b[0mthr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      6\u001b[0m     \u001b[0mintersect\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mintersection\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mG\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mC_abs_old\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumber_of_edges\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0mG\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumber_of_edges\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/pkg/python-3.7.7-0/lib/python3.7/site-packages/networkx/classes/multigraph.py\u001b[0m in \u001b[0;36mcopy\u001b[0;34m(self, as_view)\u001b[0m\n\u001b[1;32m    970\u001b[0m         \u001b[0mG\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_nodes_from\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0md\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_node\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    971\u001b[0m         G.add_edges_from((u, v, key, datadict.copy())\n\u001b[0;32m--> 972\u001b[0;31m                          \u001b[0;32mfor\u001b[0m \u001b[0mu\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnbrs\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_adj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    973\u001b[0m                          \u001b[0;32mfor\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeydict\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mnbrs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    974\u001b[0m                          for key, datadict in keydict.items())\n",
      "\u001b[0;32m/pkg/python-3.7.7-0/lib/python3.7/site-packages/networkx/classes/multigraph.py\u001b[0m in \u001b[0;36madd_edges_from\u001b[0;34m(self, ebunch_to_add, **attr)\u001b[0m\n\u001b[1;32m    535\u001b[0m                     \u001b[0;32mraise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    536\u001b[0m                 \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdd\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 537\u001b[0;31m             \u001b[0mkey\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_edge\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mu\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mv\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    538\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mu\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mv\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mddd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    539\u001b[0m             \u001b[0mkeylist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/pkg/python-3.7.7-0/lib/python3.7/site-packages/networkx/classes/multidigraph.py\u001b[0m in \u001b[0;36madd_edge\u001b[0;34m(self, u_for_edge, v_for_edge, key, **attr)\u001b[0m\n\u001b[1;32m    448\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    449\u001b[0m             \u001b[0;31m# selfloops work this way without special treatment\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 450\u001b[0;31m             \u001b[0mdatadict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0medge_attr_dict_factory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    451\u001b[0m             \u001b[0mdatadict\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mattr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    452\u001b[0m             \u001b[0mkeydict\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0medge_key_dict_factory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
     ]
    }
   ],
   "source": [
    "res = []\n",
    "for thr in np.arange(0.3, 0.41, 0.01):\n",
    "    edge_weights = nx.get_edge_attributes(C_abs,'weight')\n",
    "    G = C_abs.copy()\n",
    "    G.remove_edges_from((e for e, w in edge_weights.items() if w <= thr))\n",
    "    intersect = nx.intersection(G, C_abs_old).number_of_edges() / G.number_of_edges()\n",
    "    res.append((thr, intersect))\n",
    "    #print (\"Thr: {0:.3f}\\tIntersection: {1:.2f}\".format(thr, intersect))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "290435"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "C_abs.number_of_edges() + C_abs_old.number_of_edges() - nx.intersection(C_abs, C_abs_old).number_of_edges()*2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=0.18435714521685276, pvalue=1.285870517681202e-62)"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "G = C_abs.copy()\n",
    "#G.remove_edges_from((e for e, w in edge_weights.items() if w <= 0.1339))\n",
    "intersect = nx.intersection(G, C_abs_old)\n",
    "old_weights = []\n",
    "new_weights = []\n",
    "for src, tgt, w in intersect.edges:\n",
    "    old_weights.append(C_abs_old[src][tgt][0]['weight'])\n",
    "    new_weights.append(G[src][tgt][0]['weight'])\n",
    "scipy.stats.spearmanr(old_weights, new_weights)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CCNB1     4.991\n",
       "CCNB2     1.976\n",
       "CCNC      7.515\n",
       "CDK1     11.165\n",
       "CKS1B    12.706\n",
       "MED12L    2.993\n",
       "dtype: float64"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrp_sum_old = pd.DataFrame(lrp_neighbor_matrix_abs_old, index=node_names_old[:,1], columns=node_names_old[:, 1]).sum(axis=1)\n",
    "lrp_sum_old[['CCNB1', 'CCNB2', 'CCNC', 'CDK1', 'CKS1B', 'MED12L']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "CCNB1    2.505\n",
       "CCNB2    1.398\n",
       "CCNC     3.587\n",
       "CDK1     4.863\n",
       "CKS1B    0.197\n",
       "MED12L   0.721\n",
       "dtype: float64"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lrp_sum = pd.DataFrame(lrp_neighbor_matrix_abs, index=node_names[:,1], columns=node_names[:,1]).sum(axis=1)\n",
    "lrp_sum[['CCNB1', 'CCNB2', 'CCNC', 'CDK1', 'CKS1B', 'MED12L']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=0.06698264379409534, pvalue=4.985556359741616e-15)"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vals = pd.DataFrame(lrp_sum - lrp_sum_old, columns=['Diff'])\n",
    "vals['LRP_interaction'] = lrp_sum\n",
    "vals['Diff_rank'] = vals.Diff.rank()\n",
    "feat_df = pd.DataFrame(np.abs(features), index=node_names[:, 1], columns=feature_names)\n",
    "vals['Diff_div'] = lrp_sum_old / (0.001+lrp_sum)\n",
    "\n",
    "cna_feat = feat_df[[i for i in feat_df.columns if i.startswith('CNA:')]]\n",
    "mut_feat = feat_df[[i for i in feat_df.columns if i.startswith('MF:')]]\n",
    "meth_feat = feat_df[[i for i in feat_df.columns if i.startswith('METH:')]]\n",
    "ge_feat = feat_df[[i for i in feat_df.columns if i.startswith('GE:')]]\n",
    "\n",
    "vals = vals.join(cna_feat.sum(axis=1).rename('CNA_Feat'))\n",
    "vals = vals.join(mut_feat.sum(axis=1).rename('Mut_Feat'))\n",
    "vals = vals.join(meth_feat.sum(axis=1).rename('Meth_Feat'))\n",
    "vals = vals.join(ge_feat.sum(axis=1).rename('GE_Feat'))\n",
    "\n",
    "feat_sum = feat_df.mean(axis=1)\n",
    "\n",
    "#vals['KCG'] = False\n",
    "#vals.loc[vals.index.isin(known_cancer_genes), 'KCG'] = True\n",
    "\n",
    "degrees = pd.DataFrame(adjacency, index=node_names[:, 1]).sum(axis=1)\n",
    "vals['Degree'] = degrees\n",
    "vals['Degree_rank'] = degrees.rank()\n",
    "vals['CNA_rank'] = vals.CNA_Feat.rank()\n",
    "vals = vals.join(feat_sum.rename('FeatureSum'))\n",
    "vals['Feat_rank'] = vals.FeatureSum.rank()\n",
    "#sns.kdeplot(vals.Diff.rank(), vals.Degree.rank(), cmap='Reds',\n",
    "#            shade=True, shade_lowest=False)\n",
    "#sns.boxplot(data=vals, x='KCG', y='LRP_interaction', showfliers=False)\n",
    "#sns.scatterplot(data=vals, x='Diff_rank', y='CNA_rank')\n",
    "scipy.stats.spearmanr(vals.Diff, vals.Degree)\n",
    "#sns.scatterplot(data=vals, x='Degree_rank', y='Diff_rank')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Diff</th>\n",
       "      <th>LRP_interaction</th>\n",
       "      <th>Diff_rank</th>\n",
       "      <th>Diff_div</th>\n",
       "      <th>CNA_Feat</th>\n",
       "      <th>Mut_Feat</th>\n",
       "      <th>Meth_Feat</th>\n",
       "      <th>GE_Feat</th>\n",
       "      <th>Degree</th>\n",
       "      <th>Degree_rank</th>\n",
       "      <th>CNA_rank</th>\n",
       "      <th>FeatureSum</th>\n",
       "      <th>Feat_rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>CLPS</th>\n",
       "      <td>-0.034</td>\n",
       "      <td>0.009</td>\n",
       "      <td>5758.000</td>\n",
       "      <td>4.504</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.018</td>\n",
       "      <td>1.393</td>\n",
       "      <td>0.536</td>\n",
       "      <td>2.000</td>\n",
       "      <td>1363.000</td>\n",
       "      <td>885.000</td>\n",
       "      <td>0.030</td>\n",
       "      <td>3923.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PNLIP</th>\n",
       "      <td>-0.028</td>\n",
       "      <td>0.001</td>\n",
       "      <td>5829.000</td>\n",
       "      <td>12.175</td>\n",
       "      <td>1.048</td>\n",
       "      <td>0.336</td>\n",
       "      <td>4.666</td>\n",
       "      <td>0.190</td>\n",
       "      <td>3.000</td>\n",
       "      <td>2036.000</td>\n",
       "      <td>8454.000</td>\n",
       "      <td>0.098</td>\n",
       "      <td>11636.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CNGB1</th>\n",
       "      <td>-0.451</td>\n",
       "      <td>0.006</td>\n",
       "      <td>3548.000</td>\n",
       "      <td>68.934</td>\n",
       "      <td>0.835</td>\n",
       "      <td>0.396</td>\n",
       "      <td>1.645</td>\n",
       "      <td>1.941</td>\n",
       "      <td>3.000</td>\n",
       "      <td>2036.000</td>\n",
       "      <td>7039.000</td>\n",
       "      <td>0.075</td>\n",
       "      <td>10061.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>XRCC4</th>\n",
       "      <td>-0.243</td>\n",
       "      <td>0.095</td>\n",
       "      <td>4432.000</td>\n",
       "      <td>3.528</td>\n",
       "      <td>1.365</td>\n",
       "      <td>0.115</td>\n",
       "      <td>0.289</td>\n",
       "      <td>0.670</td>\n",
       "      <td>45.000</td>\n",
       "      <td>10479.500</td>\n",
       "      <td>9734.500</td>\n",
       "      <td>0.038</td>\n",
       "      <td>5293.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CLP1</th>\n",
       "      <td>0.087</td>\n",
       "      <td>0.090</td>\n",
       "      <td>7229.000</td>\n",
       "      <td>0.032</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.130</td>\n",
       "      <td>0.978</td>\n",
       "      <td>0.272</td>\n",
       "      <td>19.000</td>\n",
       "      <td>7311.000</td>\n",
       "      <td>885.000</td>\n",
       "      <td>0.022</td>\n",
       "      <td>2248.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BPIFB1</th>\n",
       "      <td>-0.031</td>\n",
       "      <td>0.000</td>\n",
       "      <td>5798.000</td>\n",
       "      <td>30.819</td>\n",
       "      <td>0.993</td>\n",
       "      <td>0.163</td>\n",
       "      <td>4.981</td>\n",
       "      <td>2.355</td>\n",
       "      <td>1.000</td>\n",
       "      <td>498.000</td>\n",
       "      <td>8056.000</td>\n",
       "      <td>0.133</td>\n",
       "      <td>12992.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SPRR2E</th>\n",
       "      <td>-0.508</td>\n",
       "      <td>0.058</td>\n",
       "      <td>3336.000</td>\n",
       "      <td>9.632</td>\n",
       "      <td>2.368</td>\n",
       "      <td>0.051</td>\n",
       "      <td>0.000</td>\n",
       "      <td>1.529</td>\n",
       "      <td>1.000</td>\n",
       "      <td>498.000</td>\n",
       "      <td>12188.000</td>\n",
       "      <td>0.062</td>\n",
       "      <td>8667.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KRTAP1-3</th>\n",
       "      <td>-1.967</td>\n",
       "      <td>0.056</td>\n",
       "      <td>940.000</td>\n",
       "      <td>35.296</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.055</td>\n",
       "      <td>0.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>2.000</td>\n",
       "      <td>1363.000</td>\n",
       "      <td>885.000</td>\n",
       "      <td>0.001</td>\n",
       "      <td>214.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>KIAA1549L</th>\n",
       "      <td>-0.088</td>\n",
       "      <td>0.007</td>\n",
       "      <td>5346.000</td>\n",
       "      <td>12.283</td>\n",
       "      <td>0.868</td>\n",
       "      <td>0.572</td>\n",
       "      <td>4.531</td>\n",
       "      <td>1.901</td>\n",
       "      <td>4.000</td>\n",
       "      <td>2632.500</td>\n",
       "      <td>7340.500</td>\n",
       "      <td>0.123</td>\n",
       "      <td>12746.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BHLHE22</th>\n",
       "      <td>-0.288</td>\n",
       "      <td>0.000</td>\n",
       "      <td>4216.000</td>\n",
       "      <td>287.554</td>\n",
       "      <td>0.727</td>\n",
       "      <td>0.157</td>\n",
       "      <td>2.973</td>\n",
       "      <td>1.368</td>\n",
       "      <td>1.000</td>\n",
       "      <td>498.000</td>\n",
       "      <td>6470.000</td>\n",
       "      <td>0.082</td>\n",
       "      <td>10603.000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>1112 rows × 13 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "            Diff  LRP_interaction  Diff_rank  Diff_div  CNA_Feat  Mut_Feat  \\\n",
       "CLPS      -0.034            0.009   5758.000     4.504     0.000     0.018   \n",
       "PNLIP     -0.028            0.001   5829.000    12.175     1.048     0.336   \n",
       "CNGB1     -0.451            0.006   3548.000    68.934     0.835     0.396   \n",
       "XRCC4     -0.243            0.095   4432.000     3.528     1.365     0.115   \n",
       "CLP1       0.087            0.090   7229.000     0.032     0.000     0.130   \n",
       "...          ...              ...        ...       ...       ...       ...   \n",
       "BPIFB1    -0.031            0.000   5798.000    30.819     0.993     0.163   \n",
       "SPRR2E    -0.508            0.058   3336.000     9.632     2.368     0.051   \n",
       "KRTAP1-3  -1.967            0.056    940.000    35.296     0.000     0.055   \n",
       "KIAA1549L -0.088            0.007   5346.000    12.283     0.868     0.572   \n",
       "BHLHE22   -0.288            0.000   4216.000   287.554     0.727     0.157   \n",
       "\n",
       "           Meth_Feat  GE_Feat  Degree  Degree_rank  CNA_rank  FeatureSum  \\\n",
       "CLPS           1.393    0.536   2.000     1363.000   885.000       0.030   \n",
       "PNLIP          4.666    0.190   3.000     2036.000  8454.000       0.098   \n",
       "CNGB1          1.645    1.941   3.000     2036.000  7039.000       0.075   \n",
       "XRCC4          0.289    0.670  45.000    10479.500  9734.500       0.038   \n",
       "CLP1           0.978    0.272  19.000     7311.000   885.000       0.022   \n",
       "...              ...      ...     ...          ...       ...         ...   \n",
       "BPIFB1         4.981    2.355   1.000      498.000  8056.000       0.133   \n",
       "SPRR2E         0.000    1.529   1.000      498.000 12188.000       0.062   \n",
       "KRTAP1-3       0.000    0.000   2.000     1363.000   885.000       0.001   \n",
       "KIAA1549L      4.531    1.901   4.000     2632.500  7340.500       0.123   \n",
       "BHLHE22        2.973    1.368   1.000      498.000  6470.000       0.082   \n",
       "\n",
       "           Feat_rank  \n",
       "CLPS        3923.000  \n",
       "PNLIP      11636.000  \n",
       "CNGB1      10061.000  \n",
       "XRCC4       5293.000  \n",
       "CLP1        2248.000  \n",
       "...              ...  \n",
       "BPIFB1     12992.000  \n",
       "SPRR2E      8667.000  \n",
       "KRTAP1-3     214.000  \n",
       "KIAA1549L  12746.000  \n",
       "BHLHE22    10603.000  \n",
       "\n",
       "[1112 rows x 13 columns]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vals[~np.isclose(vals.Diff_div*lrp_sum, lrp_sum_old, rtol=0.01)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "ename": "NameError",
     "evalue": "name 'pd' is not defined",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mNameError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-1-f45616c360b3>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mlrp_old_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlrp_neighbor_matrix_abs_old\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnode_names_old\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnode_names_old\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0mranked_lrp_old\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mlrp_old_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrank\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'dense'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mlrp_old_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrank\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'dense'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;36m2.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mlrp_new_df\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mDataFrame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlrp_neighbor_matrix_abs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnode_names\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnode_names\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mranked_lrp_new\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlrp_new_df\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrank\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'dense'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#+ lrp_new_df.rank(axis=1, method='dense')) / 2.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mNameError\u001b[0m: name 'pd' is not defined"
     ]
    }
   ],
   "source": [
    "lrp_old_df = pd.DataFrame(lrp_neighbor_matrix_abs_old, index=node_names_old[:, 1], columns=node_names_old[:, 1])\n",
    "ranked_lrp_old = (lrp_old_df.rank(axis=0, method='dense') + lrp_old_df.rank(axis=1, method='dense')) / 2.\n",
    "lrp_new_df = pd.DataFrame(lrp_neighbor_matrix_abs, index=node_names[:, 1], columns=node_names[:, 1])\n",
    "ranked_lrp_new = lrp_new_df.rank(axis=0, method='dense') #+ lrp_new_df.rank(axis=1, method='dense')) / 2."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 256,
   "metadata": {},
   "outputs": [],
   "source": [
    "degrees = pd.DataFrame(adjacency, index=node_names[:, 1]).sum(axis=1) * lrp_sum\n",
    "#D = np.power(np.diag(degrees), -0.5)\n",
    "#D[np.isinf(D)] = 0.\n",
    "#ranked_lrp_new_test = pd.DataFrame(D.dot(ranked_lrp_new - 1).dot(D), index=node_names[:, 1], columns=node_names[:, 1]) * lrp_sum\n",
    "ranked_lrp_new_test = pd.DataFrame(D.dot(lrp_neighbor_matrix_abs).dot(D), index=node_names[:, 1], columns=node_names[:, 1])\n",
    "\n",
    "# substract 1 to have fewer edges and faster compute times\n",
    "C_abs_new = nx.from_pandas_adjacency(ranked_lrp_new_test, create_using=nx.MultiDiGraph)\n",
    "C_abs_full_new = C_abs_new.copy()\n",
    "C_abs_full_new.remove_edges_from(list(nx.selfloop_edges(C_abs_full_new)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "scaled_df = pd.DataFrame(lrp_neighbor_matrix_abs, index=node_names[:, 1], columns=node_names[:, 1])*vals.Diff_div\n",
    "\n",
    "C_abs_new = nx.from_pandas_adjacency(scaled_df, create_using=nx.MultiDiGraph)\n",
    "C_abs_full_new = C_abs_new.copy()\n",
    "C_abs_full_new.remove_edges_from(list(nx.selfloop_edges(C_abs_full_new)))\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[2000, 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n",
      "2000\n",
      "2\n"
     ]
    }
   ],
   "source": [
    "C_abs_test = C_abs_full_new.copy()\n",
    "\n",
    "# sparsen the network\n",
    "edge_weights = nx.get_edge_attributes(C_abs_test,'weight')\n",
    "C_abs_test.remove_edges_from((e for e, w in edge_weights.items() if w <= .165)) #0.165\n",
    "\n",
    "# call SCCs\n",
    "print ([len(c) for c in sorted(nx.strongly_connected_components(C_abs_test), key=len, reverse=True) if len(c) > 1])\n",
    "print (len(max(nx.strongly_connected_components(C_abs_test), key=len)))\n",
    "nodes_component = list(max(nx.strongly_connected_components(C_abs_test), key=len))\n",
    "x = pd.DataFrame(nodes_component, columns=['Name'])\n",
    "all_components = [list(c) for c in sorted(nx.strongly_connected_components(C_abs_test), key=len, reverse=True) if len(c) > 1]\n",
    "all_components_larger5 = [list(c) for c in sorted(nx.strongly_connected_components(C_abs_test), key=len, reverse=True) if len(c) >= 5]\n",
    "print (len(all_components_larger5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Module lrp_neighbors_new_comp_10_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_9_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_8_thr_0.19.gml: Overlap: 1\n",
      "Module lrp_neighbors_new_comp_7_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_6_thr_0.19.gml: Overlap: 0\n",
      "Module lrp_neighbors_new_comp_1_thr_0.19.gml: Overlap: 2\n",
      "Module lrp_neighbors_new_comp_2_thr_0.19.gml: Overlap: 8\n",
      "Module lrp_neighbors_new_comp_3_thr_0.19.gml: Overlap: 4\n",
      "Module lrp_neighbors_new_comp_4_thr_0.19.gml: Overlap: 3\n",
      "Module lrp_neighbors_new_comp_5_thr_0.19.gml: Overlap: 1\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "19"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "flat_list = [gene for scc in all_components for gene in scc if len(scc) > 4]\n",
    "old_modules_dir = '../data/GCN/training/final_TCGA_all_networks/CPDB/multiomics/SCCs/thr_019_noneg/'\n",
    "all_genes_in_modules = []\n",
    "for gml in os.listdir(old_modules_dir):\n",
    "    if gml.endswith('.gml') and not 'nonzero' in gml:\n",
    "        module = nx.read_gml(os.path.join(old_modules_dir, gml))\n",
    "        print (\"Module {}: Overlap: {}\".format(gml, len([n for n in module.nodes() if n in flat_list])))\n",
    "        all_genes_in_modules += [n for n in module.nodes() if n in flat_list]\n",
    "len(all_genes_in_modules)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['IGFBP5', 'IGF1', 'ADAMTSL5', 'FBN2', 'IGFBP2', 'FBN1', 'LTBP1', 'EFEMP2', 'ODAPH', 'GPC3', 'IGFBP1', 'HIVEP1', 'LTBP4', 'MFAP2', 'IGFBP6', 'CLK1', 'GSDMB', 'IGF2', 'MATN2', 'HAPLN3']\n",
      "['FBN2', 'LTBP4', 'ADAMTSL5', 'FBN1', 'EFEMP2', 'MATN2', 'LTBP1']\n",
      "0\n",
      "['NELL1', 'MMP2', 'CCL7', 'CSN1S1', 'MMP1', 'TIMP3']\n",
      "['CSN1S1']\n",
      "8\n",
      "['NELL2', 'C4orf48']\n",
      "['NELL2', 'C4orf48']\n",
      "132\n",
      "['CSH1', 'LOX']\n",
      "['LOX']\n",
      "196\n"
     ]
    }
   ],
   "source": [
    "module = nx.read_gml(os.path.join(old_modules_dir, 'lrp_neighbors_new_comp_2_thr_0.19.gml'))\n",
    "n = 0\n",
    "for c in all_components:\n",
    "    overlap = [n for n in module.nodes() if n in c]\n",
    "    if len(overlap) > 0:\n",
    "        print (c)\n",
    "        print (overlap)\n",
    "        print (n)\n",
    "    n += 1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/4AAAP+CAYAAACynMTNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy86wFpkAAAACXBIWXMAAAsTAAALEwEAmpwYAACVHUlEQVR4nOzdeViVdd7H8Q+Hw5ISKqIpoiCIiiC4K4KAK2q5NNluiy021bTaMk62PDPVzNQ0075N+2RNi5Vr5oLsoAIiKoKKCiG5i4aGcDw8f8wzXk9TTWXq7z4379d1dV0zBzjnc5ip/Jzv9/7dXs3Nzc0CAAAAAAC25DAdAAAAAAAAnDkUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABuj+AMAAAAAYGMUfwAAAAAAbIziDwAAAACAjVH8AQAAAACwMYo/AAAAAAA2RvEHAAAAAMDGKP4AAAAAANgYxR8AAAAAABtzmg4AwPNMmjRJBw4ckLe3t8455xwNHz5c9913n+68805NnDhRU6dOVVFRkR588EEtWbJEktTU1KTf/e53OnDggJ577jnl5ubq5Zdf1oEDB+Tr63vyOVq3bv1fX6NVq1aSpMLCQv39739XeXm5AgMDtXDhQmO/DwAAAMDKmPgDOCVPP/20srOz9e6776qsrEyvv/76D35vY2Oj7r33Xn399dd64YUX1Lp1a8XHx+uNN95QZmam5s+frxMnTujFF1/83td4//33VVFRobfeeuvk18455xxNmTJFd9xxx5l6iwAAAIAtMPEH8It07NhRiYmJqqys/N6vNzQ0aNasWXI4HHrmmWfk5+cnSTrvvPO+9X0Oh0Nffvnl9z5H+/btlZCQoIqKipOPxcTEKCYmRmvWrDlN7wQAAACwJyb+AH6RPXv2KDc3V7169frO1xobG3X77bfLz89PTz311MnS/28lJSVKSUlRcnKy0tPTdcUVV3zva+zdu1e5ubnq2rXrGXkPAAAAgJ0x8QdwSmbNmiVvb28FBAQoKSlJ1113nW677bZvfc+xY8dUWlqqxx9/XL6+vt95jn79+umDDz7Qpk2bVF5erpCQkO+8hpeXl44dO6bBgwfrpptuOqPvCQAAALAjij+AU/LUU09pyJAh//V72rZtq3vuuUcPP/ywzjnnHCUkJHzne1599VU5HA717t1bs2fP1ty5c7/zGsXFxXrggQdUV1enc88997S/FwAAAMDOWPUHcEaNGjVKc+bM0f3336/CwsLvfN3X11fr169X165dVVNT873PMWDAAE2aNElPP/30GU4LAAAA2A8TfwBnXFpampqamnT33XfrueeeU3x8vD7//HP1799fu3fv1rx583T48OH/ukFw+eWXa9KkSdqyZYt69uwpt9stl8sll8ul5uZmNTY2ysvLSz4+PmfxnQEAAADWx8QfwFlxwQUX6K677tIdd9yhTZs2aceOHbruuus0d+5cNTc3a+3atZo0adIP/ny7du10/vnn67XXXpMkrVu3TsOHD9ftt9+u3bt3a/jw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uuKKK7Rw4ULt27dPv/71r5WTk6MJEybo6NGj6tixo5YvX67BgwerqqpKTU1NCgkJUV1dnS688EJt3bpVv//97zV27Njv5F+6dOnZ+UUBAADAVij+Bvn5+XE7P+AsCgsLk8Ph0MMPP6y0tDTFxsYqMDBQ0r/+fgwJCdFDDz30rZ/Jzs7W1Vdfrf79+6uwsFAff/yx9u/fL39/fx05ckT+/v66/fbb9cknn+jvf/+7EhMTtXPnTnl5eWnw4ME6ePCgmpqa9M4776h169Zq27atvL299atf/UpjxozRwIEDtX79et1yyy16/vnn9fLLL2vJkiXfW/wBAACAU0HxN8jf35/iD5xFrVu31uuvv663335bjz76qPbv36+kpKT/esBmYGCg2rdvr1dffVW+vr6SpMbGRr300kt69NFH1djYqKNHj2r+/PlatWqVvL299be//U3ffPONGhsb5evrK6fTKR8fH+3atUsZGRn67LPPNHv27JOvsWjRIg0fPlyBgYEaP368brzxRh08eFBBQUFn/HcCAAAA+zt9x1rjZ2PVHzj7unfvrkceeURLlizRhx9+qH379ukvf/nLD35/mzZtJP3r0L5/8/X1VUBAgPz8/NS/f3899thjWrt2rRYtWiRfX19ddNFFysjIUHZ2tu655x75+/urQ4cO2rNnz3ee//jx41qxYoUmTJggSYqLi1OnTp1Y6wcAAMBpw8TfIIo/YFZ4eLgmTZqkefPmKSEh4Xu/JywsTOedd55Wrlypq6666uTj06ZN04QJExQSEiJJqqio0P33368TJ07I7XYrLi7u5J07VqxYoXPOOUe33HKLjh8/ruPHj2vcuHFaunSpVq1apaNHj+pPf/qTnnjiCUlSfX29Fi1apCuuuOLM/xIAAABge0z8DWLVHzi7du7cqXfffVd79+6VJO3Zs0dLly5V3759JUnNzc1qbGz81l9eXl66++679dprr2nBggU6evSo3G63duzYoTfffFPSv07mv+2223TRRRfp8OHDWrBggVwulyRp+PDhWrhwoT788EO9//77+vWvf61evXrp/fffl8Ph0KJFizR58mR98MEHev/99/X+++/r9ddf19atW7Vt2zZJksvlUmNjo9xu97f+MwAAAPBTMPE36N/TQABnR6tWrbRx40bNnTtXX3/9tc4991yNGDFCd9xxh9LT01VaWqrh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PvusJGnSpEk6cOCAnE6nvLy8FBERoQkTJmjatGknXx/AmfHhhx9qzpw52rJli+koAAAAAMXf6hobG7V582bFx8dLktxut95++2098cQTqqur04wZMzRnzhy1atXKcFIA/zZv3jzdf//92rZtm+koAAAAAKv+Vufr63uy9EuSw+HQjBkztHnzZv3lL3/RggUL1L17d82aNUv19fUGkwL4N6fTyTX+AAAAsAyKvwe78sortXHjRr344otKT09X9+7ddeutt6qurs50NKBF8/b21okTJ0zHAAAAACRR/G3hoosu0rp16/T2229rzZo1ioyM1MyZM7/3doEAzjwfHx/TEQAAAICTKP42MnHiRK1du1YffvihNm7cqF69eumaa67RV199ZToa0KI4HA5O9QcAAIBlUPxtaPTo0crLy9OCBQu0c+dOxcTE6PLLL1d1dbXpaECL4OPjQ/EHAACAZVD8bSwxMVGZmZn64osvtG/fPsXHx+uiiy5SZWWl6WiArXG4HwAAAKyE4t8CDB48WCtWrFBmZqa++eYbDRo0SJMnT1ZZWZnpaIAteXt7U/wBAABgGRT/FiQuLk5LlixRXl6evLy8lJiYqPHjx6ukpMR0NMBWnE4nq/4AAACwDIp/CxQdHa358+ersLBQ5557rkaOHKnRo0dr7dq1pqMBtsDEHwAAAFZC8W/BIiMj9dFHH6m0tFSdOnVSWlqakpOTlZOTYzoa4NG4xh8AAABWQvGHunbtqrlz56qsrEyRkZGaMmWKEhIStHLlStPRAI/k7e3Nqj8AAAAsg+KPkzp16qQ333xTFRUViouL06WXXqpBgwZp8eLFpqMBHsXX15eJPwAAACyD4o/vCA4O1iuvvKLKykolJCRoxowZ6tevn+bNm2c6GuARHA4HxR8AAACWQfHHD2rTpo2ee+45bd++XWPHjtUtt9yi2NhYzZ0713Q0wNJ8fHwo/gAAALAMij9+VEBAgJ588klVVVVpypQpuueee9S7d2+9/vrrXMcMfA8O9wMAAICVeDXzp1P8TI2NjfrTn/6kV199Vf7+/rrrrrt08803y+HgcyRAkvbt26cePXro8OHDpqMAAAAAFH+cOpfLpb/+9a964YUX5HA49Jvf/EZ33HGHnE6n6WiAUQcPHlR4eLiOHDliOgoAAABA8ccv53K59MILL+iZZ56Ry+XSzTffrHvv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r3/9qxYtWqTu3bvr7rvvVn19vel4lsCp/gAAALAKij+AX+Tyyy/Xhg0b9PLLLysjI0Pdu3fXrbfeqrq6OtPRjGLVHwAAAFZB8QdwWlx44YUqLi7WO++8o7Vr1yoyMlIzZ87U/v37TUczguIPAAAAq6D4AzitJkyYoDVr1uijjz7Sxo0b1atXL11zzTWqra01He2sovgDAADAKij+AM6IUaNGKS8vTwsWLFBVVZViY2N12WWXqbq62nS0s4LiDwAAAKug+AM4oxITE5WRkaFly5bpwIEDio+P10UXXaTKykrT0c4ob29vTvUHAACAJVD8AZwVgwYN0vLly5WZmalvvvlGgwYN0qRJk7Rp0ybT0c4IJv4AAACwCoo/gLMqLi5OS5YsUUFBgby9vZWUlKTx48erpKTEdLTTytvbW83NzaZjAAAAABR/AGb06tVLn332mYqLi3Xuuedq5MiRGjVqlFavXm062mnBxB8AAABWQfEHYFT37t310UcfacOGDercubMmTJig5ORkZWdnm472izidToo/AAAALIHiD8ASQkNDNXfuXJWVlSkyMlJTp05VQkKCVqxYYTraKWHVHwAAAFZB8QdgKZ06ddKbb76piooKxcfH67LLLtOgQYO0aNEi09F+Flb9AQAAYBUUfwCWFBwcrJdfflnbt2/X8OHDdd111yk+Pl4ff/yx6Wg/idPp5HZ+AAAAsASKPwBLCwwM1LPPPqvt27dr3LhxuvXWWxUTE6O5c+daepXe6XSajgAAAABIovgD8BABAQF68sknVVVVpalTp+ree+9V79699dprr1lypd7hcDDxBwAAgCVQ/AF4FH9/fz322GPauXOnrrzySj3yyCPq2bOnnn/+eUt9AODj42PpjQQAAAC0HBR/AB7J19dXDz30kHbu3KmZM2fqySefVEREhJ566im5XC7T8TjcDwAAAJZB8Qfg0ZxOp+677z5t375ds2bN0osvvqju3bvrscceM/oBALfzAwAAgFVQ/AHYgre3t2677TZt3bpVc+bM0dtvv61u3brpoYceUkNDw1nP43Q6mfgDAADAEij+AGzF4XDopptuUnl5uf74xz/q448/Vnh4uO6//34dPXr0rOVg4g8AAACroPgDsCWHw6FrrrlGZWVleuaZZ/T555+re/fuuuuuu/T111+f8ddn4g8AAACroPgDsL1LL71U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M2XKlL23/+mf/ilTpkzJJZdckquvvjp1dXV505velN27d2flypVJklqtllWrVmX+/PlpaGh43bcB/L7nAQD2j/AHAPbJSSedlF/84hd5+umnU61W89BDD2XixIlJkt27d+fb3/523vve9yZJ/vzP/zznnntujjzyyLS3t+fOO+/M7t278/jjj2fnzp0ZP358xo4du/cvBP630aNH57HHHsvPf/7zvPTSS3n88cczatSoDn2tAFAm/jk/AGCf/fo0fujQoTnmmGMyYMCAJMnPf/7zVKvV9O/fP0ly+umn7/1MgHvuuSeLFi3KJz/5ydTX12f48OHp06dPzjrrrFx22WVpbW1NY2Pj3ufo0aNHRo4cmYcffji1Wi3Nzc3p0aNHIa8XAMrAiT8AsM8mTZqUNWvW/Mbl9717906lUskLL7zwmvv37ds3c+fOzTPPPJPVq1fnS1/60t6rAk4++eQcccQRWbNmzW88z+TJk7Ny5cqsWrUqkydPPrQvCgBKTvgDAPvsyCOPzFFHHZVNmzblzDPP3Pv1nj175qSTTsqjjz76uo9761vfmvPOOy+7d+/OxRdfnKFDh+a9731vnn/++de93P/d7353Xnjhhfz0pz/NkCFDDtXLAYBuQfgDAPvlL//yL3PjjTfmsMMOe83Xr7rqqqxYsSK33nprXnzxxSTJD37wg3z0ox9NkjzxxBM55ZRT8sorr+SJJ57I008/nSOPPDL/+Z//mSeffPI1P6uuri6f/exns3jx4tTV1XXMCwOAkhL+AMB+GThwYN75znf+xtdPPvnk3Hjjjfn3f//3TJs2LWPGjMn111+fpqam7Ny5M//xH/+RT33qUxk0aFB2796d1tbWbNmyJYMGDXrdU/+3v/3tefvb394RLwkASq2uVqvVih4BAHQfixYtyu23356dO3dmyJAh+cY3vpFKxVkEABwqfssCAB3q7LPPzpve9KZce+21ef755zNr1qxUq9WiZwFAaTnxBwA6VLVazTe/+c2ccsopeeaZZzJq1KgMGzYs99xzj5N/ADgEhD8AUKhnn302zc3NGTp0aO677z7xDwAHmfAHAAq3ffv2jBgxIkOGDMnSpUvFPwAcRH6rAgCFGzhwYDZt2pRvfetbOeecc7znHwAOIif+AECnsX379owaNSonnHBCli9f7uQfAA4C4Q8AdCo7duzIyJEjc/zx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\n",
      "text/plain": [
       "<Figure size 1008x1008 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "M = C_abs_test.subgraph(all_components[2])\n",
    "fig = plt.figure(figsize=(14, 14))\n",
    "nx.draw(M, with_labels=True, node_color='gray', alpha=.8, node_size=1, font_size=12)\n",
    "#_ = nx.draw_networkx_labels(M, pos=nx.spring_layout(M))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Diff</th>\n",
       "      <th>LRP_interaction</th>\n",
       "      <th>Diff_rank</th>\n",
       "      <th>Diff_div</th>\n",
       "      <th>CNA_Feat</th>\n",
       "      <th>Mut_Feat</th>\n",
       "      <th>Meth_Feat</th>\n",
       "      <th>GE_Feat</th>\n",
       "      <th>KCG</th>\n",
       "      <th>Degree</th>\n",
       "      <th>Degree_rank</th>\n",
       "      <th>CNA_rank</th>\n",
       "      <th>FeatureSum</th>\n",
       "      <th>Feat_rank</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>STIM1</th>\n",
       "      <td>0.942</td>\n",
       "      <td>1.029</td>\n",
       "      <td>9793.000</td>\n",
       "      <td>0.084</td>\n",
       "      <td>0.878</td>\n",
       "      <td>0.142</td>\n",
       "      <td>1.340</td>\n",
       "      <td>0.908</td>\n",
       "      <td>False</td>\n",
       "      <td>40.000</td>\n",
       "      <td>10086.000</td>\n",
       "      <td>7357.500</td>\n",
       "      <td>0.051</td>\n",
       "      <td>7350.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TRPC1</th>\n",
       "      <td>6.092</td>\n",
       "      <td>6.684</td>\n",
       "      <td>12952.000</td>\n",
       "      <td>0.089</td>\n",
       "      <td>0.346</td>\n",
       "      <td>0.318</td>\n",
       "      <td>0.913</td>\n",
       "      <td>1.785</td>\n",
       "      <td>False</td>\n",
       "      <td>17.000</td>\n",
       "      <td>6863.000</td>\n",
       "      <td>4547.000</td>\n",
       "      <td>0.053</td>\n",
       "      <td>7545.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NOS1</th>\n",
       "      <td>-0.716</td>\n",
       "      <td>1.019</td>\n",
       "      <td>2759.000</td>\n",
       "      <td>1.701</td>\n",
       "      <td>0.831</td>\n",
       "      <td>0.729</td>\n",
       "      <td>2.977</td>\n",
       "      <td>4.771</td>\n",
       "      <td>False</td>\n",
       "      <td>39.000</td>\n",
       "      <td>9997.500</td>\n",
       "      <td>6966.000</td>\n",
       "      <td>0.145</td>\n",
       "      <td>13243.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ATP2B4</th>\n",
       "      <td>1.100</td>\n",
       "      <td>1.219</td>\n",
       "      <td>10164.000</td>\n",
       "      <td>0.098</td>\n",
       "      <td>1.077</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.789</td>\n",
       "      <td>1.619</td>\n",
       "      <td>False</td>\n",
       "      <td>42.000</td>\n",
       "      <td>10244.500</td>\n",
       "      <td>8766.000</td>\n",
       "      <td>0.062</td>\n",
       "      <td>8745.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ABCC9</th>\n",
       "      <td>0.634</td>\n",
       "      <td>2.123</td>\n",
       "      <td>8869.000</td>\n",
       "      <td>0.701</td>\n",
       "      <td>0.136</td>\n",
       "      <td>0.821</td>\n",
       "      <td>0.000</td>\n",
       "      <td>2.740</td>\n",
       "      <td>False</td>\n",
       "      <td>3.000</td>\n",
       "      <td>2036.000</td>\n",
       "      <td>2779.000</td>\n",
       "      <td>0.058</td>\n",
       "      <td>8206.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>GPR153</th>\n",
       "      <td>-0.174</td>\n",
       "      <td>0.681</td>\n",
       "      <td>4583.000</td>\n",
       "      <td>1.254</td>\n",
       "      <td>2.846</td>\n",
       "      <td>0.047</td>\n",
       "      <td>0.491</td>\n",
       "      <td>0.887</td>\n",
       "      <td>False</td>\n",
       "      <td>1.000</td>\n",
       "      <td>498.000</td>\n",
       "      <td>12770.000</td>\n",
       "      <td>0.067</td>\n",
       "      <td>9202.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>HDC</th>\n",
       "      <td>-0.261</td>\n",
       "      <td>0.087</td>\n",
       "      <td>4174.000</td>\n",
       "      <td>3.943</td>\n",
       "      <td>1.022</td>\n",
       "      <td>0.192</td>\n",
       "      <td>2.457</td>\n",
       "      <td>2.661</td>\n",
       "      <td>False</td>\n",
       "      <td>1.000</td>\n",
       "      <td>498.000</td>\n",
       "      <td>8240.000</td>\n",
       "      <td>0.099</td>\n",
       "      <td>11733.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CSMD1</th>\n",
       "      <td>3.461</td>\n",
       "      <td>3.875</td>\n",
       "      <td>12350.000</td>\n",
       "      <td>0.107</td>\n",
       "      <td>3.280</td>\n",
       "      <td>2.408</td>\n",
       "      <td>0.000</td>\n",
       "      <td>3.007</td>\n",
       "      <td>False</td>\n",
       "      <td>1.000</td>\n",
       "      <td>498.000</td>\n",
       "      <td>13161.000</td>\n",
       "      <td>0.136</td>\n",
       "      <td>13084.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>BHLHE22</th>\n",
       "      <td>-0.274</td>\n",
       "      <td>0.014</td>\n",
       "      <td>4131.000</td>\n",
       "      <td>19.704</td>\n",
       "      <td>0.727</td>\n",
       "      <td>0.157</td>\n",
       "      <td>2.973</td>\n",
       "      <td>1.368</td>\n",
       "      <td>False</td>\n",
       "      <td>1.000</td>\n",
       "      <td>498.000</td>\n",
       "      <td>6470.000</td>\n",
       "      <td>0.082</td>\n",
       "      <td>10603.000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>PROKR1</th>\n",
       "      <td>-0.505</td>\n",
       "      <td>0.304</td>\n",
       "      <td>3337.000</td>\n",
       "      <td>2.653</td>\n",
       "      <td>0.129</td>\n",
       "      <td>0.196</td>\n",
       "      <td>1.129</td>\n",
       "      <td>1.732</td>\n",
       "      <td>False</td>\n",
       "      <td>2.000</td>\n",
       "      <td>1363.000</td>\n",
       "      <td>2578.000</td>\n",
       "      <td>0.050</td>\n",
       "      <td>7143.000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>13627 rows × 14 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "          Diff  LRP_interaction  Diff_rank  Diff_div  CNA_Feat  Mut_Feat  \\\n",
       "STIM1    0.942            1.029   9793.000     0.084     0.878     0.142   \n",
       "TRPC1    6.092            6.684  12952.000     0.089     0.346     0.318   \n",
       "NOS1    -0.716            1.019   2759.000     1.701     0.831     0.729   \n",
       "ATP2B4   1.100            1.219  10164.000     0.098     1.077     0.508   \n",
       "ABCC9    0.634            2.123   8869.000     0.701     0.136     0.821   \n",
       "...        ...              ...        ...       ...       ...       ...   \n",
       "GPR153  -0.174            0.681   4583.000     1.254     2.846     0.047   \n",
       "HDC     -0.261            0.087   4174.000     3.943     1.022     0.192   \n",
       "CSMD1    3.461            3.875  12350.000     0.107     3.280     2.408   \n",
       "BHLHE22 -0.274            0.014   4131.000    19.704     0.727     0.157   \n",
       "PROKR1  -0.505            0.304   3337.000     2.653     0.129     0.196   \n",
       "\n",
       "         Meth_Feat  GE_Feat    KCG  Degree  Degree_rank  CNA_rank  FeatureSum  \\\n",
       "STIM1        1.340    0.908  False  40.000    10086.000  7357.500       0.051   \n",
       "TRPC1        0.913    1.785  False  17.000     6863.000  4547.000       0.053   \n",
       "NOS1         2.977    4.771  False  39.000     9997.500  6966.000       0.145   \n",
       "ATP2B4       0.789    1.619  False  42.000    10244.500  8766.000       0.062   \n",
       "ABCC9        0.000    2.740  False   3.000     2036.000  2779.000       0.058   \n",
       "...            ...      ...    ...     ...          ...       ...         ...   \n",
       "GPR153       0.491    0.887  False   1.000      498.000 12770.000       0.067   \n",
       "HDC          2.457    2.661  False   1.000      498.000  8240.000       0.099   \n",
       "CSMD1        0.000    3.007  False   1.000      498.000 13161.000       0.136   \n",
       "BHLHE22      2.973    1.368  False   1.000      498.000  6470.000       0.082   \n",
       "PROKR1       1.129    1.732  False   2.000     1363.000  2578.000       0.050   \n",
       "\n",
       "         Feat_rank  \n",
       "STIM1     7350.000  \n",
       "TRPC1     7545.000  \n",
       "NOS1     13243.000  \n",
       "ATP2B4    8745.000  \n",
       "ABCC9     8206.000  \n",
       "...            ...  \n",
       "GPR153    9202.000  \n",
       "HDC      11733.000  \n",
       "CSMD1    13084.000  \n",
       "BHLHE22  10603.000  \n",
       "PROKR1    7143.000  \n",
       "\n",
       "[13627 rows x 14 columns]"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vals"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "feature_contributions = np.load(os.path.join(model_dir, 'lrp_sigmoid', 'feat_mean_all.npy'))\n",
    "# replace 0 values with small random ones to prevent numerical issues\n",
    "feat_contrib_df = pd.DataFrame(feature_contributions, index=node_names[:feature_contributions.shape[0], 1], columns=feature_names)\n",
    "zero_rows = feat_contrib_df[(feat_contrib_df == 0).all(axis=1)]\n",
    "feat_contrib_df.loc[(feat_contrib_df == 0).all(axis=1)] = np.random.randn(*zero_rows.shape)*0.00001"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Diff</th>\n",
       "      <th>LRP_interaction</th>\n",
       "      <th>Diff_rank</th>\n",
       "      <th>Diff_div</th>\n",
       "      <th>CNA_Feat</th>\n",
       "      <th>Mut_Feat</th>\n",
       "      <th>Meth_Feat</th>\n",
       "      <th>GE_Feat</th>\n",
       "      <th>KCG</th>\n",
       "      <th>Degree</th>\n",
       "      <th>Degree_rank</th>\n",
       "      <th>CNA_rank</th>\n",
       "      <th>FeatureSum</th>\n",
       "      <th>Feat_rank</th>\n",
       "      <th>MF_contrib</th>\n",
       "      <th>CNA_contrib</th>\n",
       "      <th>METH_contrib</th>\n",
       "      <th>GE_contrib</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>STIM1</th>\n",
       "      <td>0.942</td>\n",
       "      <td>1.029</td>\n",
       "      <td>9793.000</td>\n",
       "      <td>0.084</td>\n",
       "      <td>0.878</td>\n",
       "      <td>0.142</td>\n",
       "      <td>1.340</td>\n",
       "      <td>0.908</td>\n",
       "      <td>False</td>\n",
       "      <td>40.000</td>\n",
       "      <td>10086.000</td>\n",
       "      <td>7357.500</td>\n",
       "      <td>0.051</td>\n",
       "      <td>7350.000</td>\n",
       "      <td>-0.006</td>\n",
       "      <td>0.002</td>\n",
       "      <td>0.038</td>\n",
       "      <td>-0.002</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TRPC1</th>\n",
       "      <td>6.092</td>\n",
       "      <td>6.684</td>\n",
       "      <td>12952.000</td>\n",
       "      <td>0.089</td>\n",
       "      <td>0.346</td>\n",
       "      <td>0.318</td>\n",
       "      <td>0.913</td>\n",
       "      <td>1.785</td>\n",
       "      <td>False</td>\n",
       "      <td>17.000</td>\n",
       "      <td>6863.000</td>\n",
       "      <td>4547.000</td>\n",
       "      <td>0.053</td>\n",
       "      <td>7545.000</td>\n",
       "      <td>0.205</td>\n",
       "      <td>0.080</td>\n",
       "      <td>0.148</td>\n",
       "      <td>-0.236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>NOS1</th>\n",
       "      <td>-0.716</td>\n",
       "      <td>1.019</td>\n",
       "      <td>2759.000</td>\n",
       "      <td>1.701</td>\n",
       "      <td>0.831</td>\n",
       "      <td>0.729</td>\n",
       "      <td>2.977</td>\n",
       "      <td>4.771</td>\n",
       "      <td>False</td>\n",
       "      <td>39.000</td>\n",
       "      <td>9997.500</td>\n",
       "      <td>6966.000</td>\n",
       "      <td>0.145</td>\n",
       "      <td>13243.000</td>\n",
       "      <td>0.164</td>\n",
       "      <td>0.068</td>\n",
       "      <td>0.045</td>\n",
       "      <td>-0.353</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ATP2B4</th>\n",
       "      <td>1.100</td>\n",
       "      <td>1.219</td>\n",
       "      <td>10164.000</td>\n",
       "      <td>0.098</td>\n",
       "      <td>1.077</td>\n",
       "      <td>0.508</td>\n",
       "      <td>0.789</td>\n",
       "      <td>1.619</td>\n",
       "      <td>False</td>\n",
       "      <td>42.000</td>\n",
       "      <td>10244.500</td>\n",
       "      <td>8766.000</td>\n",
       "      <td>0.062</td>\n",
       "      <td>8745.000</td>\n",
       "      <td>0.256</td>\n",
       "      <td>-0.443</td>\n",
       "      <td>-0.050</td>\n",
       "      <td>-0.138</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>ABCC9</th>\n",
       "      <td>0.634</td>\n",
       "      <td>2.123</td>\n",
       "      <td>8869.000</td>\n",
       "      <td>0.701</td>\n",
       "      <td>0.136</td>\n",
       "      <td>0.821</td>\n",
       "      <td>0.000</td>\n",
       "      <td>2.740</td>\n",
       "      <td>False</td>\n",
       "      <td>3.000</td>\n",
       "      <td>2036.000</td>\n",
       "      <td>2779.000</td>\n",
       "      <td>0.058</td>\n",
       "      <td>8206.000</td>\n",
       "      <td>-2.385</td>\n",
       "      <td>-0.259</td>\n",
       "      <td>0.000</td>\n",
       "      <td>2.820</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         Diff  LRP_interaction  Diff_rank  Diff_div  CNA_Feat  Mut_Feat  \\\n",
       "STIM1   0.942            1.029   9793.000     0.084     0.878     0.142   \n",
       "TRPC1   6.092            6.684  12952.000     0.089     0.346     0.318   \n",
       "NOS1   -0.716            1.019   2759.000     1.701     0.831     0.729   \n",
       "ATP2B4  1.100            1.219  10164.000     0.098     1.077     0.508   \n",
       "ABCC9   0.634            2.123   8869.000     0.701     0.136     0.821   \n",
       "\n",
       "        Meth_Feat  GE_Feat    KCG  Degree  Degree_rank  CNA_rank  FeatureSum  \\\n",
       "STIM1       1.340    0.908  False  40.000    10086.000  7357.500       0.051   \n",
       "TRPC1       0.913    1.785  False  17.000     6863.000  4547.000       0.053   \n",
       "NOS1        2.977    4.771  False  39.000     9997.500  6966.000       0.145   \n",
       "ATP2B4      0.789    1.619  False  42.000    10244.500  8766.000       0.062   \n",
       "ABCC9       0.000    2.740  False   3.000     2036.000  2779.000       0.058   \n",
       "\n",
       "        Feat_rank  MF_contrib  CNA_contrib  METH_contrib  GE_contrib  \n",
       "STIM1    7350.000      -0.006        0.002         0.038      -0.002  \n",
       "TRPC1    7545.000       0.205        0.080         0.148      -0.236  \n",
       "NOS1    13243.000       0.164        0.068         0.045      -0.353  \n",
       "ATP2B4   8745.000       0.256       -0.443        -0.050      -0.138  \n",
       "ABCC9    8206.000      -2.385       -0.259         0.000       2.820  "
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for omics in ['MF:', 'CNA:', 'METH:', 'GE:']:\n",
    "    omics_con = feat_contrib_df[[i for i in feat_contrib_df.columns if i.startswith(omics)]]\n",
    "    vals['{}_contrib'.format(omics.split(':')[0])] = omics_con.sum(axis=1)\n",
    "vals.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=0.05047372926687531, pvalue=3.7410372241963734e-09)"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scipy.stats.spearmanr(vals.Diff, vals.CNA_contrib)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [],
   "source": [
    "vals = pred.join(vals, on='Name')\n",
    "vals.set_index('Name', inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "label                       -0.009\n",
       "Num_Pos                     -0.049\n",
       "Prob_pos                    -0.031\n",
       "Std_Pred                    -0.179\n",
       "NCG_Known_Cancer_Gene       -0.007\n",
       "NCG_Candidate_Cancer_Gene   -0.027\n",
       "OncoKB_Cancer_Gene           0.007\n",
       "Bailey_et_al_Cancer_Gene    -0.005\n",
       "ONGene_Oncogene              0.022\n",
       "Diff                        -0.872\n",
       "LRP_interaction             -0.477\n",
       "Diff_rank                   -0.872\n",
       "Diff_div                     1.000\n",
       "CNA_Feat                    -0.015\n",
       "Mut_Feat                    -0.100\n",
       "Meth_Feat                   -0.202\n",
       "GE_Feat                     -0.076\n",
       "KCG                         -0.007\n",
       "Degree                      -0.052\n",
       "Degree_rank                 -0.052\n",
       "CNA_rank                    -0.015\n",
       "FeatureSum                  -0.188\n",
       "Feat_rank                   -0.188\n",
       "MF_contrib                   0.005\n",
       "CNA_contrib                 -0.028\n",
       "METH_contrib                -0.024\n",
       "GE_contrib                  -0.007\n",
       "Name: Diff_div, dtype: float64"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vals.corr(method='spearman')['Diff_div']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>label</th>\n",
       "      <th>Num_Pos</th>\n",
       "      <th>Prob_pos</th>\n",
       "      <th>Std_Pred</th>\n",
       "      <th>NCG_Known_Cancer_Gene</th>\n",
       "      <th>NCG_Candidate_Cancer_Gene</th>\n",
       "      <th>OncoKB_Cancer_Gene</th>\n",
       "      <th>Bailey_et_al_Cancer_Gene</th>\n",
       "      <th>ONGene_Oncogene</th>\n",
       "      <th>DatabaseKnowledge</th>\n",
       "      <th>...</th>\n",
       "      <th>KCG</th>\n",
       "      <th>Degree</th>\n",
       "      <th>Degree_rank</th>\n",
       "      <th>CNA_rank</th>\n",
       "      <th>FeatureSum</th>\n",
       "      <th>Feat_rank</th>\n",
       "      <th>MF_contrib</th>\n",
       "      <th>CNA_contrib</th>\n",
       "      <th>METH_contrib</th>\n",
       "      <th>GE_contrib</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>CDK1</th>\n",
       "      <td>False</td>\n",
       "      <td>10</td>\n",
       "      <td>1.000</td>\n",
       "      <td>0.000</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>ONGeneTSGene</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>293.000</td>\n",
       "      <td>13482.500</td>\n",
       "      <td>6054.500</td>\n",
       "      <td>0.062</td>\n",
       "      <td>8712.000</td>\n",
       "      <td>0.022</td>\n",
       "      <td>-0.014</td>\n",
       "      <td>-0.024</td>\n",
       "      <td>0.006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CCNB1</th>\n",
       "      <td>False</td>\n",
       "      <td>10</td>\n",
       "      <td>0.999</td>\n",
       "      <td>0.001</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>ONGeneTSGene</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>148.000</td>\n",
       "      <td>13021.000</td>\n",
       "      <td>10248.000</td>\n",
       "      <td>0.078</td>\n",
       "      <td>10300.000</td>\n",
       "      <td>0.023</td>\n",
       "      <td>-0.048</td>\n",
       "      <td>-0.057</td>\n",
       "      <td>0.101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CCNC</th>\n",
       "      <td>True</td>\n",
       "      <td>10</td>\n",
       "      <td>0.982</td>\n",
       "      <td>0.030</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>CGC</td>\n",
       "      <td>...</td>\n",
       "      <td>True</td>\n",
       "      <td>93.000</td>\n",
       "      <td>12377.500</td>\n",
       "      <td>11673.000</td>\n",
       "      <td>0.044</td>\n",
       "      <td>6310.000</td>\n",
       "      <td>0.182</td>\n",
       "      <td>0.000</td>\n",
       "      <td>-0.116</td>\n",
       "      <td>-0.025</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>MED12L</th>\n",
       "      <td>False</td>\n",
       "      <td>9</td>\n",
       "      <td>0.841</td>\n",
       "      <td>0.196</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>NCGCandidates</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>15.000</td>\n",
       "      <td>6434.000</td>\n",
       "      <td>7248.500</td>\n",
       "      <td>0.078</td>\n",
       "      <td>10305.000</td>\n",
       "      <td>0.840</td>\n",
       "      <td>-0.128</td>\n",
       "      <td>0.288</td>\n",
       "      <td>-0.959</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CKS1B</th>\n",
       "      <td>False</td>\n",
       "      <td>4</td>\n",
       "      <td>0.398</td>\n",
       "      <td>0.346</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>ONGeneTSGene</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>59.000</td>\n",
       "      <td>11335.500</td>\n",
       "      <td>11932.000</td>\n",
       "      <td>0.092</td>\n",
       "      <td>11315.000</td>\n",
       "      <td>0.016</td>\n",
       "      <td>-1.094</td>\n",
       "      <td>0.063</td>\n",
       "      <td>0.097</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>CCNB2</th>\n",
       "      <td>False</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344</td>\n",
       "      <td>0.261</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>False</td>\n",
       "      <td>False</td>\n",
       "      <td>True</td>\n",
       "      <td>ONGeneTSGene</td>\n",
       "      <td>...</td>\n",
       "      <td>False</td>\n",
       "      <td>26.000</td>\n",
       "      <td>8512.500</td>\n",
       "      <td>6442.500</td>\n",
       "      <td>0.079</td>\n",
       "      <td>10402.000</td>\n",
       "      <td>-0.900</td>\n",
       "      <td>1.443</td>\n",
       "      <td>0.415</td>\n",
       "      <td>8.387</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>6 rows × 28 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "        label  Num_Pos  Prob_pos  Std_Pred  NCG_Known_Cancer_Gene  \\\n",
       "Name                                                                \n",
       "CDK1    False       10     1.000     0.000                  False   \n",
       "CCNB1   False       10     0.999     0.001                  False   \n",
       "CCNC     True       10     0.982     0.030                   True   \n",
       "MED12L  False        9     0.841     0.196                  False   \n",
       "CKS1B   False        4     0.398     0.346                  False   \n",
       "CCNB2   False        2     0.344     0.261                  False   \n",
       "\n",
       "        NCG_Candidate_Cancer_Gene  OncoKB_Cancer_Gene  \\\n",
       "Name                                                    \n",
       "CDK1                        False               False   \n",
       "CCNB1                       False               False   \n",
       "CCNC                        False               False   \n",
       "MED12L                       True               False   \n",
       "CKS1B                       False               False   \n",
       "CCNB2                        True               False   \n",
       "\n",
       "        Bailey_et_al_Cancer_Gene  ONGene_Oncogene DatabaseKnowledge  ...  \\\n",
       "Name                                                                 ...   \n",
       "CDK1                       False             True      ONGeneTSGene  ...   \n",
       "CCNB1                      False             True      ONGeneTSGene  ...   \n",
       "CCNC                       False            False               CGC  ...   \n",
       "MED12L                     False            False     NCGCandidates  ...   \n",
       "CKS1B                      False             True      ONGeneTSGene  ...   \n",
       "CCNB2                      False             True      ONGeneTSGene  ...   \n",
       "\n",
       "          KCG  Degree  Degree_rank  CNA_rank  FeatureSum  Feat_rank  \\\n",
       "Name                                                                  \n",
       "CDK1    False 293.000    13482.500  6054.500       0.062   8712.000   \n",
       "CCNB1   False 148.000    13021.000 10248.000       0.078  10300.000   \n",
       "CCNC     True  93.000    12377.500 11673.000       0.044   6310.000   \n",
       "MED12L  False  15.000     6434.000  7248.500       0.078  10305.000   \n",
       "CKS1B   False  59.000    11335.500 11932.000       0.092  11315.000   \n",
       "CCNB2   False  26.000     8512.500  6442.500       0.079  10402.000   \n",
       "\n",
       "        MF_contrib  CNA_contrib  METH_contrib  GE_contrib  \n",
       "Name                                                       \n",
       "CDK1         0.022       -0.014        -0.024       0.006  \n",
       "CCNB1        0.023       -0.048        -0.057       0.101  \n",
       "CCNC         0.182        0.000        -0.116      -0.025  \n",
       "MED12L       0.840       -0.128         0.288      -0.959  \n",
       "CKS1B        0.016       -1.094         0.063       0.097  \n",
       "CCNB2       -0.900        1.443         0.415       8.387  \n",
       "\n",
       "[6 rows x 28 columns]"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vals[vals.index.isin(['CCNB1', 'CCNB2', 'CCNC', 'CDK1', 'CKS1B', 'MED12L'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=0.2559104073779038, pvalue=1.0689807272132565e-202)"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "scipy.stats.spearmanr(lrp_sum_old, vals.Prob_pos)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=0.25970464002948423, pvalue=6.642167845956568e-209)"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.kdeplot(vals['Prob_pos'].rank(), np.abs(vals['Diff']).rank(), cmap='Reds', shade=True, shade_lowest=False)\n",
    "scipy.stats.spearmanr(vals.Prob_pos, np.abs(vals.Diff))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1008x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# ['CCNB1', 'CCNB2', 'CCNC', 'CDK1', 'CKS1B', 'MED12L']\n",
    "vals['old_modules'] = False\n",
    "vals.loc[vals.index.isin(all_genes_in_modules), 'old_modules'] = True\n",
    "fig = plt.figure(figsize=(14, 8))\n",
    "#sns.boxplot(data=vals.melt(id_vars=['old_modules']), x='variable', y='value', hue='old_modules', showfliers=False)\n",
    "sns.boxplot(data=vals, x='old_modules', y='Prob_pos', showfliers=False)\n",
    "plt.gca().tick_params(axis='x', rotation=90)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/pkg/python-3.7.7-0/lib/python3.7/site-packages/scipy/stats/stats.py:3508: PearsonRConstantInputWarning: An input array is constant; the correlation coefficent is not defined.\n",
      "  warnings.warn(PearsonRConstantInputWarning())\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:>"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "c = 0\n",
    "#lrp_old_df = pd.DataFrame(lrp_neighbor_matrix_old, index=node_names_old[:, 1], columns=node_names_old[:, 1])\n",
    "#lrp_new_df = pd.DataFrame(lrp_neighbor_matrix, index=node_names[:, 1], columns=node_names[:, 1])\n",
    "\n",
    "all_rs = []\n",
    "all_genes = []\n",
    "for gene in pred.Name:\n",
    "    r, p = scipy.stats.pearsonr(ranked_lrp_new[gene], ranked_lrp_old[gene])\n",
    "    all_rs.append(r)\n",
    "    all_genes.append(gene)\n",
    "sns.boxplot(all_rs, orient='v', showfliers=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(13627, 1)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<AxesSubplot:xlabel='old_modules', ylabel='R'>"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "t = pd.DataFrame(all_rs, index=all_genes, columns=['R'])\n",
    "print (t.shape)\n",
    "t['top1000'] = False\n",
    "t['old_modules'] = False\n",
    "t.loc[t.index.isin(all_genes_in_modules), 'old_modules'] = True\n",
    "t.loc[t.index.isin(pred.head(1000).Name), 'top1000'] = True\n",
    "sns.boxplot(data=t, x='old_modules', y='R')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SpearmanrResult(correlation=0.9606981694861306, pvalue=0.0)"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "g = 'CCNB2'\n",
    "sns.scatterplot(ranked_lrp_new[g], ranked_lrp_old[g])\n",
    "scipy.stats.spearmanr(ranked_lrp_new[g], ranked_lrp_old[g])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "112\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[('CCNB1', 'CKS1B', {'weight': 1.0867682909403233}),\n",
       " ('CCNB1', 'CDC6', {'weight': 0.6196500395443987}),\n",
       " ('CCNB1', 'CDC20', {'weight': 0.3205357668236031}),\n",
       " ('CCNB1', 'MEF2C', {'weight': 0.3016759791438442}),\n",
       " ('CCNB1', 'ESPL1', {'weight': 0.24917720214524458}),\n",
       " ('CCNB1', 'CDK1', {'weight': 0.22068644790509706}),\n",
       " ('CCNB1', 'NDC80', {'weight': 0.19221118840844284}),\n",
       " ('CCNB1', 'FOXM1', {'weight': 0.1883010262832804}),\n",
       " ('CCNB1', 'ANAPC11', {'weight': 0.17412894944278345}),\n",
       " ('CCNB1', 'PKMYT1', {'weight': 0.1696912720894421}),\n",
       " ('CCNB1', 'CDC25C', {'weight': 0.15290283294673193}),\n",
       " ('CCNB1', 'KAT6A', {'weight': 0.12325017989005316}),\n",
       " ('CCNB1', 'PLK1', {'weight': 0.12073102159851164}),\n",
       " ('CCNB1', 'GADD45B', {'weight': 0.1108602250037671}),\n",
       " ('CCNB1', 'ALKBH8', {'weight': 0.11028994961883934}),\n",
       " ('CCNB1', 'DEDD', {'weight': 0.10633630429360691}),\n",
       " ('CCNB1', 'MAP4', {'weight': 0.10099645866356764}),\n",
       " ('CCNB1', 'PRC1', {'weight': 0.09112302150072106}),\n",
       " ('CCNB1', 'KLC3', {'weight': 0.08879586253549077}),\n",
       " ('CCNB1', 'MYT1', {'weight': 0.08815271097333631})]"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ips = [i for i in C_abs_full_new.out_edges('CCNB1', data=True)]\n",
    "print (len(ips))\n",
    "sorted([i for i in ips], key=lambda x: x[2]['weight'], reverse=True)[:20]#i[1].startswith('CC')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "113\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "[('CCNB1', 'CCNB1', {'weight': 1.0473802853787744}),\n",
       " ('CCNB1', 'CCNB2', {'weight': 0.21785909191866606}),\n",
       " ('CCNB1', 'PKMYT1', {'weight': 0.15113282736737865}),\n",
       " ('CCNB1', 'KAT6A', {'weight': 0.15043067220300052}),\n",
       " ('CCNB1', 'ESPL1', {'weight': 0.14373280859820384}),\n",
       " ('CCNB1', 'FOXM1', {'weight': 0.1382376619419695}),\n",
       " ('CCNB1', 'MYT1', {'weight': 0.13322410286753136}),\n",
       " ('CCNB1', 'CCNF', {'weight': 0.12662709424080199}),\n",
       " ('CCNB1', 'CDC6', {'weight': 0.12532488380605253}),\n",
       " ('CCNB1', 'NDC80', {'weight': 0.11854026751095005}),\n",
       " ('CCNB1', 'NGB', {'weight': 0.11623261041868649}),\n",
       " ('CCNB1', 'GADD45B', {'weight': 0.11099287167934424}),\n",
       " ('CCNB1', 'CDC25C', {'weight': 0.11089868735741}),\n",
       " ('CCNB1', 'GADD45G', {'weight': 0.10186146842533633}),\n",
       " ('CCNB1', 'MEF2C', {'weight': 0.09697047201192947}),\n",
       " ('CCNB1', 'CDC20', {'weight': 0.09434283013980806}),\n",
       " ('CCNB1', 'PRC1', {'weight': 0.09286235645054919}),\n",
       " ('CCNB1', 'ALKBH8', {'weight': 0.08827416961513986}),\n",
       " ('CCNB1', 'CCNA2', {'weight': 0.07083152401354044}),\n",
       " ('CCNB1', 'CDC25A', {'weight': 0.07015113006358001})]"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ips = [i for i in C_full_old.out_edges('CCNB1', data=True)]\n",
    "print (len(ips))\n",
    "sorted([i for i in ips], key=lambda x: x[2]['weight'], reverse=True)[:20]#i[1].startswith('CC')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "scaling_factor = vals.Diff_div / (lrp_neighbor_matrix != 0).sum(axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "inf"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "vals.Diff_div.max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
